I use rest web service in my rails application for user’s
authentication (user creation, login, …)
Can someone explain me, how can i call a REST Web service (not
developped in Rails, and deployed by Tomcat) in my rails application
via POST method.
class MyUserWS < ActiveResource::Base
self.site = “http://localhost/” # point this to the location of
your web service
self.format = :json # default format is xml.
include this line if you want json
self.element_name = “users” # if your class name (MyUserWS in
this case) is different from the name of the webservice you are
calling, Mention the real name here
self.user = “[email protected]” # if your webserive need user
authentication mention user name and password
self.password = “mypassword”
end
Once you have this… you can instanciate MyUserWS as if it is a model
on local database table. You can do all activerecord operations on it
as you do on your models
I use rest web service in my rails application for user’s
authentication (user creation, login, …)
Can someone explain me, how can i call a REST Web service (not
developped in Rails, and deployed by Tomcat) in my rails application
via POST method.
I use the Ruby Net::HTTP library to construct requests.
Best regards,
Bill
Thanks to all for your answer.
Bill, can you show me please how you you use the NET::HTTP library to
call web service.
Because i have used the NET::HTTP libray like the following, but i
alway got 405 error and web service is not called.
I have the signup method in my user controller!
def signup
require “net/http”
require “uri”
user= User.new(params[:firstname],
params[:lastname],params[:password],params[:mobilenumber],params[:email])
uri = URI.parse(“myWebServiceUrl”)
http = Net::HTTP.new(uri.host, uri.port)
self.response_body = proc do |response, output|
net_http.start do |http|
http.request_get(uri.request_uri()) do |res|
case res
when Net::HTTPSuccess then
res.read_body do |segment|
response.write(segment)
end
when Net::HTTPRedirection then
response.close() unless response.closed?
return
else
raise “Net::HTTPResponse error: #{res.message.to_s()}”
end
end
end
end
end
Allow me to second the recommendation to read up on ActiveResource -
this is
exactly what it’s designed for, and in fact if you’re also developing
the
ReST API, you can use ActiveResource to impose convention (over
configuration) in your API - plus you’ll have a nice test rig when
you’re
done.
Only issue is whether enough people in the Ruby community see AR this
way
and whether it will continue to be maintained.
m
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.