2

Ruby on RailsのRESTfulメソッドで期待されるパラメーターを公開する方法はありますか?SOAPを使用するとWSDLを使用できますが、RoRはRESTfulサービスにWADLまたはWSDL 2.0を実装しますか?編集:ActionWebServiceを使用したSOAPベースのソリューションを知っています。https://wadl.dev.java.net/に相当するRoRを参照していました

4

4 に答える 4

4

はい、要件の解決策は、レールにActionwebservice gem をインストールすることです。レール 2.3.2 を使用していて、次のコマンドを使用して Actionwebservice gem をインストールしてみてください。

ステップ1 :

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

ステップ 2 : gem を conf/environment.rb に追加する

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

ステップ 3 : Web サービスを生成する

 $ ./script/generate web_service  webservice_name

生成された Web サービス ファイルは /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: app/services で 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
于 2009-07-09T05:10:39.073 に答える
1

答えはノーだ"; Rails はこれを行う方法を提供していません。WSDL 2.0 は、REST を実行する人はおろか、誰も使用していないことはほぼ間違いありません (理論的にはある程度可能ですが、RESTful HTTP のサポートは非​​常に限られています。たとえば、ハイパーメディアをサポートしていません)。WADL は、REST コミュニティ内でも大きな受け入れ問題を抱えています。Java Jersey フレームワークを除いて、私は実装を認識していません。

于 2010-01-04T21:01:59.213 に答える
0

REST Describe & Compileを使用して、WADL に基づいて Ruby クライアントを生成できます。Google Documents で、それに関する非常に詳細なドキュメントを見つけることができます。

于 2010-01-28T10:25:04.543 に答える
0

実際には実装が 1 つあります。Rails ルートから WADL を生成できる gem: https://github.com/austvik/wadlgenですが、制限があります。

于 2013-04-15T09:37:15.043 に答える