Is there any way of publishing the parameters expected by the RESTful methods in Ruby on Rails? Using SOAP, we can use WSDL, but does RoR implement WADL or WSDL 2.0 for RESTful services? Edit: I am aware of a SOAP based solution using ActionWebService. I was refering to a RoR equivalent of https://wadl.dev.java.net/
Yes , Solution for your requirement is installing a Actionwebservice gem in rails , If your using rails 2.3.2 and try installing the Actionwebservice gem using the following command
Step 1 :
$ gem install datanoise-actionwebservice --source http://gems.github.com
Step 2 : Add the gem to the conf/environment.rb
config.gem 'datanoise-actionwebservice', :lib => 'actionwebservice'
Step 3 : Generate a webservice
$ ./script/generate web_service webservice_name
you could see the generated webservice files in /app/services
Step 4 : Modify your controller
class YourController < ApplicationController
wsdl_service_name 'webservice_name'
web_service_api webservice_nameApi
web_service_scaffold :invocation if Rails.env == 'development'
def add(name, value)
Your.create(:name => name, :value => value).id
end
end
Step 5: Modify your api class in app/services
class WebserviceNameApi < ActionWebService::API::Base
api_method :add, :expects => [:string, :string], :returns => [:int]
end
Step 6 : You can read the wsdl file
$ ./script/server
$ curl http://localhost:3000/controller/wsdl