i am reading through chapter 20 of the agile web development book and trying to figure out how to use web services. i set up two different rails apps. one as the server and one as the client. setting up the server seems to work fine. but when i use the example at the end of the chapter to set up a client, i get the following error when i open the page: Missing API definition file in apis/user_api.rb Which is the filename for my user api on the server application. I have this in my controller: class RemoteInfoController < ApplicationController web_client_api :user, :soap, "http://my_ip_address/server/backend/api" def list @users = user.find_all_users.map do |id| user.find_user_by_id(id) end end def index end end Am I supposed to have a user_api.rb file on the client application too, or have I just made a mistake? -- Posted via http://www.ruby-forum.com/.
yes, you need apis/user_api.rb and you''d provide the method signature for the api call there with api_method such as api_method find_user_by_id, :expects => {:id => :int}, :returns => {:user } please note that I am not expert in this area. For complete info, see this HowTo article on rails site. http://wiki.rubyonrails.com/rails/pages/How+To+Consume+.NET+WebServices also, if you are trying to do anymore than basic web service stuff, ActionWebService might not meet your needs, you would need to check ''soap4r''. Hope that helps PS Josh Kieschnick wrote:> i am reading through chapter 20 of the agile web development book and > trying to figure out how to use web services. i set up two different > rails apps. one as the server and one as the client. setting up the > server seems to work fine. but when i use the example at the end of the > chapter to set up a client, i get the following error when i open the > page: > > Missing API definition file in apis/user_api.rb > > Which is the filename for my user api on the server application. I have > this in my controller: > > class RemoteInfoController < ApplicationController > web_client_api :user, > :soap, > "http://my_ip_address/server/backend/api" >-- Posted via http://www.ruby-forum.com/.
Pradeep Sethi wrote:> yes, you need apis/user_api.rb and you''d provide the method signature > for the api call there with api_method > > such as > > api_method find_user_by_id, > :expects => {:id => :int}, > :returns => {:user } >that''s what i have in apis/user_api.rb on the server application. am i supposed to have it in both apps? -- Posted via http://www.ruby-forum.com/.
I have not done server side WS in rails. I created just a client for consuming a .NET service and had to put the signature in apis/api.rb. PS Josh Kieschnick wrote:> that''s what i have in apis/user_api.rb on the server application. am i > supposed to have it in both apps?-- Posted via http://www.ruby-forum.com/.