REST
vsSOAP
は正しい質問ではありません。
REST
SOAP
、とは異なり、プロトコルではありません。
REST
は、ネットワーク ベースのソフトウェア アーキテクチャのアーキテクチャ スタイルおよび設計です。
REST
概念はリソースと呼ばれます。リソースの表現はステートレスでなければなりません。それは、いくつかのメディア タイプを介して表されます。メディア タイプの例にはXML
、 、JSON
、およびが含まれRDF
ます。リソースはコンポーネントによって操作されます。コンポーネントは、標準の統一インターフェースを介してリソースを要求し、操作します。HTTP の場合、このインターフェイスは標準の HTTP ops で構成GET
さPUT
れPOST
ますDELETE
。
@Abdulazizの質問は、REST
とHTTP
がしばしば併用されるという事実を明らかにしています。これは主に、HTTP の単純さと、RESTful 原則への非常に自然なマッピングによるものです。
REST の基本原則
クライアントサーバー通信
クライアント/サーバー アーキテクチャでは、関心事項が非常に明確に分離されています。RESTful スタイルで構築されたすべてのアプリケーションも、原則としてクライアント サーバーでなければなりません。
ステートレス
サーバーへの各クライアント要求では、その状態が完全に表現されている必要があります。サーバーは、サーバー コンテキストやサーバー セッション状態を使用せずに、クライアントの要求を完全に理解できる必要があります。したがって、すべての状態をクライアントで保持する必要があります。
キャッシュ可能
キャッシュ制約を使用して、応答データをキャッシュ可能またはキャッシュ不可としてマークできるようにすることができます。キャッシュ可能としてマークされたデータは、同じ後続のリクエストへのレスポンスとして再利用できます。
統一インターフェース
すべてのコンポーネントは、単一の統一されたインターフェイスを介して対話する必要があります。すべてのコンポーネントの対話はこのインターフェースを介して行われるため、さまざまなサービスとの対話は非常に簡単です。インターフェースはそのまま!これは、実装の変更を個別に行うことができることも意味します。統一されたインターフェースは常に変更されないため、このような変更は基本的なコンポーネントの相互作用には影響しません。欠点の 1 つは、インターフェイスに固執することです。インターフェイスを変更することで特定のサービスに最適化を提供できたとしても、REST ではこれが禁止されているため、うまくいきません。ただし、明るい面としては、REST は Web 用に最適化されているため、REST over HTTP は非常に人気があります。
上記の概念は、REST の定義特性を表し、REST アーキテクチャを Web サービスなどの他のアーキテクチャと区別します。REST サービスは Web サービスですが、Web サービスは必ずしも REST サービスであるとは限りません。
RESTと上記の箇条書きの詳細については、REST 設計原則に関するこのブログ投稿を参照してください。
編集:コメントに基づいてコンテンツを更新する