1. ホーム
  2. web-services

RESTとSOAPのウェブサービスを比較検討する?[重複しています]。

2023-10-31 03:42:37

質問

私は現在、同様のものは、消費者とプロバイダの間でデータを交換するためにインターネットプロトコル(HTTP)を使用して、両方であることを把握する。

違うのは

  1. SOAP は XML ベースのメッセージ プロトコルであり、REST はアーキテクチャのスタイルです。
  2. SOAP はコンシューマとプロバイダ間の通信に WSDL を使用しますが、REST はデータの送受信に XML または JSON を使用します。
  3. SOAP は RPC メソッドを呼び出してサービスを起動しますが、REST は単に URL パスを介してサービスを呼び出すだけです。
  4. SOAP は人間が読める結果を返しませんが、REST の結果は単なるプレーンな XML または JSON で読むことができます。
  5. SOAP は HTTP だけでなく、SMTP、FTP などの他のプロトコルも使用します。

両者の違いとして私が知っているのはここまでです。どなたか訂正と追加をお願いします。

どのように解決するのですか?

<ブロッククオート

SOAPはコンシューマとプロバイダ間の通信にWSDLを使用するのに対し RESTはXMLやJSONでデータの送受信を行うだけです。

WSDLはクライアントとサービス間の契約を定義するもので、その性質上静的なものです。RESTの場合、契約はやや複雑で、HTTP、URI、メディアフォーマット、Application Specific Coordination Protocolによって定義されます。WSDLとは異なり、非常に動的です。

<ブロッククオート

SOAPは人間が読めるような結果を返しませんが、RESTの結果は単なるXMLやJSONで読むことができます。

これは真実ではありません。プレーンなXMLやJSONは全くRESTfulではありません。メッセージは自己完結していなければならず、エージェント/クライアントとサービス間の相互作用を調整する限り、RESTに反しています。

リンクとセマンティックリンクの関係により、クライアントは次のインタラクションステップが何かを決定し、これらのリンクをたどり、サービスとの通信を継続することができるはずです。

メッセージは人間が読める必要はなく、暗号化されたフォーマットを使用して、完全に有効なRESTアプリケーションを構築することができます。メッセージが可読であるかどうかは重要ではありません。

したがって、プレーンなXML(application/xml)やJSON(application/json)は、RESTアプリケーションを構築するための十分なフォーマットではありません。クライアントとサーバー間のインタラクションを調整するために、強い意味と十分な制御情報(リンクなど)を提供するこれらの一般的なメディアタイプのサブセットを使用することは常に合理的です。

RESTはHTTPだけです。

HTTPは最も広く使われており、RESTウェブサービスについて話すときは、単にHTTPを想定しています。HTTPは、メソッド(GET、POST、PUT、DELETE、PATCHなど)と、リソースと対話するために統一的に使用できるさまざまなヘッダーでインターフェースを定義しています。この統一性は、他のプロトコルでも同様に達成することができます。

追伸 非常にシンプルでありながら、非常に興味深いRESTの説明です。 http://www.looah.com/source/view/2284