WADL / WSDL 2.0 для RESTful-сервисов в Ruby on Rails - PullRequest
2 голосов
/ 08 июля 2009

Есть ли способ опубликовать параметры, ожидаемые методами RESTful в Ruby on Rails? Используя SOAP, мы можем использовать WSDL, но реализует ли RoR WADL или WSDL 2.0 для сервисов RESTful? Изменить: мне известно о решении на основе SOAP с использованием ActionWebService. Я ссылался на эквивалент RoR https://wadl.dev.java.net/

Ответы [ 4 ]

4 голосов
/ 09 июля 2009

Да, решением для ваших требований является установка гема Actionwebservice в рельсы, если вы используете рельсы 2.3.2 и попробуйте установить гем Actionwebservice с помощью следующей команды

Шаг 1:

 $ gem install datanoise-actionwebservice --source http://gems.github.com

Шаг 2: Добавьте камень в файл conf / environment.rb

 config.gem 'datanoise-actionwebservice', :lib => 'actionwebservice'

Шаг 3: Создание веб-службы

 $ ./script/generate web_service  webservice_name

вы можете увидеть сгенерированные файлы веб-сервиса в / app / services

Шаг 4: Изменить контроллер

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

Шаг 5: Измените свой класс API в приложении / сервисах

class WebserviceNameApi < ActionWebService::API::Base
    api_method :add, :expects => [:string, :string], :returns => [:int]

end

Шаг 6: Вы можете прочитать файл wsdl

$ ./script/server
$ curl http://localhost:3000/controller/wsdl
1 голос
/ 05 января 2010

Ответ «Нет»; Rails не предоставляет способ сделать это. WSDL 2.0, возможно, никем не используется, не говоря уже о том, что кто-то делает REST (хотя теоретически это возможно до определенной степени, его поддержка RESTful HTTP очень ограничена; У WADL также есть серьезные проблемы с принятием в сообществе REST; за исключением платформы Java-Джерси, я не знаю ни о какой реализации.

0 голосов
/ 15 апреля 2013

На самом деле есть одна реализация - гем, который может генерировать WADL из маршрутов Rails: https://github.com/austvik/wadlgen,, но у него есть свои ограничения.

0 голосов
/ 28 января 2010

Вы можете генерировать клиенты Ruby на основе вашего WADL, используя REST Describe & Compile . Вы можете найти очень хорошую подробную документацию об этом в Документах Google.

...