RESTとSOAPのウェブサービスを比較検討する?[重複しています]。
質問
私は現在、同様のものは、消費者とプロバイダの間でデータを交換するためにインターネットプロトコル(HTTP)を使用して、両方であることを把握する。
違うのは
- SOAP は XML ベースのメッセージ プロトコルであり、REST はアーキテクチャのスタイルです。
- SOAP はコンシューマとプロバイダ間の通信に WSDL を使用しますが、REST はデータの送受信に XML または JSON を使用します。
- SOAP は RPC メソッドを呼び出してサービスを起動しますが、REST は単に URL パスを介してサービスを呼び出すだけです。
- SOAP は人間が読める結果を返しませんが、REST の結果は単なるプレーンな XML または JSON で読むことができます。
- 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アプリケーションを構築するための十分なフォーマットではありません。クライアントとサーバー間のインタラクションを調整するために、強い意味と十分な制御情報(リンクなど)を提供するこれらの一般的なメディアタイプのサブセットを使用することは常に合理的です。
- 制御情報の詳細については、以下を参照することを強くお勧めします。 を読むことを強くお勧めします。 http://www.amundsen.com/hypermedia/hfactor/
- ウェブリンク。 https://www.rfc-editor.org/rfc/rfc5988
- 登録されたリンク関係。 http://www.iana.org/assignments/link-relations/link-relations.xml
RESTはHTTPだけです。
HTTPは最も広く使われており、RESTウェブサービスについて話すときは、単にHTTPを想定しています。HTTPは、メソッド(GET、POST、PUT、DELETE、PATCHなど)と、リソースと対話するために統一的に使用できるさまざまなヘッダーでインターフェースを定義しています。この統一性は、他のプロトコルでも同様に達成することができます。
追伸 非常にシンプルでありながら、非常に興味深いRESTの説明です。 http://www.looah.com/source/view/2284
関連
-
[解決済み] Spring RestTemplateクライアント - 接続拒否例外
-
[解決済み] ActionScript 3 で SOAP ウェブサービスに "Null" (本当の苗字!) を渡す方法
-
[解決済み] SOAPとRESTの比較(相違点)
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み】メッセージキューとウェブサービスは?[をご紹介します。]
-
[解決済み】XSDとWSDLの違いは何ですか?
-
[解決済み] REST API - なぜ PUT DELETE POST GET を使用するのですか?
-
[解決済み] JSON、REST、SOAP、WSDL、そしてSOA。これらはどのように結びついているのか
-
[解決済み] RESTfulサービスにおける非CRUD操作
-
[解決済み] GoのWebサーバーの前にNginxを使うメリットは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSONの文字エンコーディング - UTF-8はブラウザでよくサポートされていますか、それとも数字のエスケープシーケンスを使用すべきですか?
-
[解決済み】JavaでSOAPとRESTfulなWebサービスの主な違い【重複あり
-
[解決済み] わかりやすく言うと「Webサービス」って何?
-
[解決済み] ブラウザネイティブのJSONサポート(window.JSON)
-
[解決済み] 株式/金融データのための最も包括的なAPI [終了しました]。
-
[解決済み] OAuth v2による認証サーバーとリソースサーバー間のコミュニケーション
-
[解決済み] 緯度経度からタイムゾーンを検索する【非公開
-
RESTful Web サービスでログインを実装するにはどうすればよいですか?
-
Google MapsはどうやってAPI Keyを確保しているのか?似たようなものを作るには?
-
RESTにおけるRepresentational Stateの意味とは?