RESTとは何ですか?
代表的な国家移転。あるシステムが別のシステムと状態を通信する方法を説明します。1つの例は、XML、JSON、またはプレーンテキストとして表される製品の状態(名前、説明など)です。状態の一般化された概念は、リソースと呼ばれます。
Webアーキテクチャエコシステムでどのような位置を占めていますか?
HTTPが最も一般的なキャリアプロトコルであるため、RESTは一般にWebサービスインターフェイスに関連付けられています。7層モデルでは、アプリケーション層に存在します。ただし、次のセクションを参照してください。
プロトコルとどの程度緊密に(または緩く)結合されていますか?
RESTはHTTPではありません。HTTPを使用するのは、最も一般的な形式であるRESTが、動詞の概念を名詞の任意のコレクションに対してマッピングするのを支援するために存在するためです。HTTPには、GET http://example.org/Product(54)などのHTTPを使用してURIとして表現された任意の名詞に適用できる、汎用の動詞(GET、PUT、PATCHなど)の有用なセットが含まれています。
RESTの代替手段は何ですか?RESTはそれらとどのように比較しますか
これは、「私のアプローチはどのくらいRESTfulですか?」次のリストを使用します(Martin Fowlerが説明したRichardson Maturity Modelから要約)。
レベル0-POXの沼
すべて(読み取り、書き込み、削除)にPOSTを使用します。これはSOAP、POX、RPIなどです。HTTPを独自のプロトコルのトンネルとして使用しているだけです。要求本文の内容に基づいてすべてを実行する単一のエンドポイントをターゲットにします。
レベル1-リソース
すべてにPOSTを使用します。特定のものに関する情報を提供するように設計された複数のエンドポイントをターゲットにします。リソースを発見しました。
レベル2-HTTP動詞
リソースに対してHTTP動詞を使用します。今、あなたはそれをGETしています。POSTは作成、PUTは上書き、OPTIONSは利用可能な操作、DELETEはリソースを削除します。これらの動詞を使用した結果、さまざまなHTTPステータスコードの関連性が高まり始めています(202は承認されていますか?)。
レベル3-ハイパーメディアコントロール(HATEOAS)
この時点で、最終的な飛躍を遂げ、フロー制御メカニズムとしてハイパーメディアを導入します。RESTクライアントは、ハイパーメディアの一般的な理解を超えて、特定のアプリケーションまたはサーバーと対話する方法に関する事前知識を必要としません。これは、Content-Typeヘッダーフィールドを介してHTTPで通信できます。テキスト形式にはAtomPubと(より簡潔な)HALが含まれますが、HyperAudioはオーディオストリームに適しています(SoundCloudなどを参照)