web-dev-qa-db-ja.com

REST WebサービスWSDL?

私はWebサービスを実装しており、RESTとSOAP=バージョンの両方を実装して、ニーズに合ったものを確認しました。RESTそのシンプルさと、おそらくそれを消費するiPhoneアプリを開発するためです。私の質問は本当に簡単です。私のREST =サービスとそれは必要ですか?

ありがとう

39
Ian

優れたRESTfulサービスを使用すると、自己記述型であるため、WADLを生成する必要はありません(ましてやあまり適合しないWSDLは言うまでもありません)。 「自己記述」とは、具体的には、サービスによって公開されたすべての(関連する)リソースを説明するドキュメントを配信し、これらのいずれかで標準のHTTP OPTIONS要求を使用すると、対話方法に関する基本情報が生成されることを意味します。 WADLを使用することの唯一の本当の利点は、呼び出し元が事前に操作する必要がある複雑なドキュメントのスキーマを発見できることです。 REST自体はそこに何の助けも提供しません(そして、そのようなことをするのは逆効果だと信じているRESTianもいますが、私は同意しません。).

もちろん、それはより深い相互作用パターンをキャプチャしませんが、サービスのWSDL記述の大部分もキャプチャしないので、そこに変更はありません。


記録のために、Apache CXFを使用して(JAX-RSを使用して)RESTfulサービスを作成し、WADLを公開します。

39
Donal Fellows

W3CWSDL 2. に基づいて RESTドキュメント標準 の正式な推奨を作成しました。 IBM記事 からの引用です:

Webサービスという用語は通常、SOAPおよびWS-AddressingやWS-SecurityなどのWS *標準を使用した操作ベースまたはアクションベースのサービスに関連付けられます。用語REST Webサービスは、一般に、HTTPおよびXMLを使用するリソースベースのWebサービスアーキテクチャを指します。これらのアーキテクチャWebサービススタイルにはそれぞれ場所がありますが、最近まで、WSDL標準は両方のスタイルを等しくサポートしていませんでした。 WSDL 1.1 HTTPバインディングは、HTTPおよびXMLとの通信を記述するのに不十分であったため、WSDLでREST Webサービスを正式に記述する方法はありませんでした。 REST Webサービスを念頭に置いて設計されたWSDL 2.0の公開は、World Wide Web Consortium(W3C)勧告として、説明する言語が存在することを意味しますREST Webサービス。

7

もちろん可能ですが、答えが必要かどうかについては、十分な情報を提供しませんでした。

IBMのdeveloperworksサイトで、テーマに関する興味深い記事をご覧になることをお勧めします http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/
それが役に立てば幸い。


厳密には、WSDL 1.0ではできませんが、WSDL2ではできます。この種の需要を受け入れるために開発されたため、

"... RESTスタイルWebサービスの要件に対応したWS-IプロファイルのWSDL 2.0。SOAP 1.2およびいくつかの追加でのGETの追加操作の安全性などのWSDL 2.0では、他のWebサービスを参照するメッセージを記述する機能、および改良されたHTTPバインディングにより、RESTスタイルWebサービスを記述することが可能になりました。 "、 アーサーライマン

3

RestDoc RESTリソース用のシンプルなドキュメントフレームワークを作成しようとします。ブラウザは restdoc-renderer で利用できます。

また、 Java注釈 を提供して、RestDoc文書のオンザフライ作成を可能にします。 Jersey 1.x および JAX-RS 2. の実装が利用可能です。

3
koppor

@GiuliaDiFedericoが言ったように、「もちろん可能です」(WSDL2を使用)、実行方法に関する優れたソースリンクを示しています。一方、@ DonalFellowsはWSDLの使用を推奨していません...

WSDLの使用は問題です

  • FORMALIZATION LEVEL:WSDLを使用すると、Webサービスの関連するすべての詳細をより正式に表現できます。
  • STABILITY LEVEL:長期契約が必要で、Webサービスが公開されている環境の変化のリスクを回避する場合、WSDLは安定性を維持するのに役立ちます。
  • 標準が必要:「標準準拠」と言えるWebサービスを顧客が好む場合は、標準を使用します。唯一のものはW3Cで、W3CにはXML、SOAPおよびWSDL。
3
Peter Krauss

WSDLはRESTには適していません。WADLは必要ありません。HTTPはWADLが別のファイルに記述できるものを既に公開しています。たとえば、 "Allow"ヘッダーは許可されたHTTPメソッドを返し、Content Negotiation適切な形式を選択するためのものです。

1
deamon

WADLは必要ありません。ただし、クライアント側のコードがすでにアプリケーションに存在し、新しい休憩呼び出しを行いたい場合は、クライアント側Java stub(POJO))の生成にwadlを使用することをお勧めします。この方法により、クライアント側のPOJOはサービス側のPOJOと同期します。たとえば、既存のアプリケーションでEJB/SOAPサービス呼び出しをRestサービス呼び出しに置き換える場合、WADLを使用することは非常に安全で良い方法です。

Wadl2Java mavenプラグインを使用して、WADLからクライアント側Javaスタブを生成できます。

1
R.Ranjan