2008-08-08 5 views
18

実際にドキュメントベースのWebサービスが優先されていると感じました。これは他の人の経験ですか?彼らは簡単にサポートできますか? (私は、SharePointがWSDLインターフェイスの「ドキュメントタイプ」にAnyを使用していると指摘しました。ドキュメントベースまたはRPCベースのWebサービス

また、同じ機能のWSDLとRest型サービスの両方を提供する人ですか? WSDLはコード生成のために普及していますが、PHPやRailsのようなフロントエンドでは、安心して使うことができます。

答えて

30

サービスとサービスの説明(WSDL)が必要なSOAP Webサービスを使用している場合は、ドキュメントとRPCの対比は問題になります。 RESTfulなWebサービスはWSDLを使用しません。なぜなら、それによってサービスを記述することができず、RESTがより簡単でわかりやすいからです。一部の人々は、WADLをRESTサービスを記述する方法として提案しています。

Python、Ruby、PHPなどの言語は、RESTでの作業が簡単です。 WSDLは、静的言語から簡単に呼び出すことができるC#コード(Webサービスプロキシ)を生成するために使用されます。これは、Service ReferenceまたはWeb ReferenceをVisual Studioに追加すると発生します。

SOAPまたはRESTサービスを提供するかどうかは、ユーザーの人口によって異なります。サービスがインターネット上で使用されるか、組織内で使用されるかは、選択に影響します。 SOAPには、B2Bや内部使用のためにはうまくいくが、インターネットサービスは吸うといういくつかの機能(WS- *標準)があるかもしれない。

SOAPサービスのRPCとDocument/literalは、IBM DevelopWorks articleに記述されています。ドキュメント/リテラル​​は一般に、相互運用性(Javaから.NETなど)の点で最も優れているとみなされます。サポートが容易かどうかは、状況によって異なります。私の個人的な見解は、人々が必要以上に複雑なものにする傾向があり、RESTのより簡単なアプローチが優れているということです。

+3

リンクはすべてを記述しています。 http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/ –

1

BiranLyの回答が優れています。私はそのドキュメントを追加したいだけです - vs-RPCは実装上の問題にも向いています。私たちはJavaベースのライブラリがRPCベースのものであったのに対し、MicrosoftはDocument-preferredringをMicrosoftに見出しました。どのようなものを選んでも、他の潜在的な顧客が引き受けるものを知っていることを確認してください。

4

前述のように、可能であればRPCエンコードされたドキュメントリテラルを選択することをお勧めします。 古いJavaライブラリ(Axis1、Glueなどの先史時代のもの)はRPCエンコードのみサポートしていますが、現代のJava SOAPライブラリではサポートしていません(e.x. AXIS2、XFire、CXF)。 したがって、RPCエンコードされたサービスは、よりうまくできない消費者に対処する必要があることが分かっている場合にのみ公開してください。しかし、XML RPCがこれらのレガシーな実装に役立つかもしれません。

関連する問題