19

私の直感では、実際にはドキュメント ベースの Web サービスが好まれます。これは他の人々の経験ですか? サポートしやすいですか?(SharePoint は、WSDL インターフェースの「ドキュメント タイプ」に Any を使用していることに注意しました。これにより、ドキュメント ベースになっていると思います)。

また、同じ機能に対して WSDL と Rest タイプのサービスの両方を提供している人はいますか? WSDL はコード生成で人気がありますが、PHP や Rails などのフロント エンドでは、WSDL を好むようです。

4

3 に答える 3

30

ドキュメントと RPC は、サービス記述 ( WSDL ) を必要とする SOAP Web サービスを使用している場合にのみ問題になります。RESTful Web サービスは WSDL ではサービスを記述できないため使用しません。また、REST の方が単純で理解しやすいと感じています。REST サービスを記述する方法としてWADLを提案した人もいます。

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

SOAP サービスと REST サービスのどちらを提供するかは、ユーザー数によって異なります。サービスをインターネット経由で使用するか、組織内だけで使用するかは、選択に影響します。SOAP には、B2B や社内での使用には適した機能 (WS-* 標準) がいくつかあるかもしれませんが、インターネット サービスには適していません。

ドキュメント/リテラル​​と SOAP サービスの RPC については、このIBM DevelopWorks の記事で説明されています。一般に、ドキュメント/リテラル​​は、相互運用性 (Java から .NET など) の観点から使用するのに最適であると考えられています。サポートしやすいかどうかは、状況によって異なります。私の個人的な見解では、人々はこのことを必要以上に複雑にする傾向があり、REST の単純なアプローチの方が優れています。

于 2008-08-08T15:55:58.517 に答える
5

前述のように、可能な限り RPC エンコードよりもドキュメント リテラルを選択することをお勧めします。確かに、古い Java ライブラリ (Axis1、Glue、その他の先史時代のもの) は RPC エンコードのみをサポートしていますが、今日の最新の Java SOAP ライブラリ (AXIS2、XFire、CXF など) ではサポートされていません。したがって、RPC でエンコードされたサービスを公開するようにしてください。しかし、XML RPC だけでも、これらの従来の実装に役立つ可能性があります。

于 2008-09-05T11:19:26.520 に答える
1

BiranLy の答えは素晴らしいです。document-vs-RPC も実装の問題に帰着する可能性があることを付け加えたいと思います。Java ベースのライブラリが RPC ベースであるのに対し、Microsoft はドキュメント優先であることがわかりました。何を選択するにしても、他の潜在的なクライアントも同様に何を想定しているかを確認してください。

于 2008-08-12T17:01:44.543 に答える