21

REST API と通常の API (JSON 応答を出力する) の違いは何ですか?

4

2 に答える 2

16

まったく違いはありません。REST は、サーバーが何を返すかではなく、HTTP サーバーと対話する方法を記述します。ほとんどの Web アプリは、POST のフォーム送信または GET のクエリ文字列で要求を満たすために必要な追加情報を使用して、POST または GET 要求によってサーバー側と対話します。そのため、サーバーから何かを削除したい場合は、通常、リソースを指定するデータと削除の指示を含むフォームを使用して POST を実行します。

ただし、HTTP は GET または POST 以外のメソッド (動詞とも呼ばれます) を実装します。また、とりわけ、HEAD (GET に対して行ったのと同じヘッダーを返しますが、応答本文はありません)、PUT (要求本文を取得し、PUT 要求が行われた URL にそのコンテンツを格納します)、およびDELETE (指定された URL に存在するすべてのリソースを削除します)。REST インターフェイスは、これらの追加の動詞を使用して、要求の意味をサーバーに伝えるだけです。

通常、ブラウザーは「通常の」(非 XHR) リクエストに対して GET と POST のみをサポートしますが、Curl などのツールは HTTP 動詞の完全なセットを発行できます。AJAX などの XHR ベースの手法で追加の動詞を使用することもできます。

アプリを使用するための要件として JavaScript と XHR のサポートを作成しない限り、ブラウザーが使用する従来の非 REST API を引き続き提供する必要があります。

于 2012-05-15T07:32:01.763 に答える
8

REST は、ほとんどの場合、意図したとおりに HTTP プロトコルを使用することを指します。URL で HTTP メソッドを使用して、 HTTPヘッダーGETに基づくさまざまな形式で情報を取得します。AcceptHTTP メソッドを使用POSTして、サーバー上に新しいアイテムを作成し、PUT既存のアイテムを編集し、DELETEそれらを削除します。API をべき等にします。つまり、同じクエリを同じ情報で繰り返しても、同じ結果が得られるはずです。URL を階層的に構造化するなど。

REST は、URL と HTTP プロトコルを使用して API を構築する方法の指針にすぎません。戻り値の形式については何も述べていませんが、JSON である可能性もあります。

これは、たとえば、HTTP メソッドや URL の違いをまったく使用せずに、指定されたポートにバイナリ メッセージまたは XML メッセージを送信する API とは対照的です。

于 2012-05-15T06:05:47.627 に答える