2012-05-15 5 views

答えて

15

全く違いはありません。 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を用意する必要があります。

+0

こんにちは、私はモバイルappasだけでなく、Webサイトで消費されるAPIを作りたいと思います。 API(RESTまたは非REST)を実行する最善の方法は何でしょうか? – Shaolin

7

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

RESTは、URLを使用してHTTPプロトコルを使用してAPIを構成する基本的な原則です。リターンフォーマットについては何も言わず、JSONだけでもいいかもしれません。

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