Representational State Transfer
RESTなウェブアプリケーションは、遠隔手続き呼出し (RPC) アプリケーションとは異なる設計面のアプローチを必要とする。RPCでは、プロトコル操作(動詞)の多様性を重視する。RPCアプリケーションが定義する操作の例を次に示す。
一方RESTでは、リソース(名詞)の多様性を重視する。RESTアプリケーションが定義するリソースの型の例を次に示す。
それぞれのリソースは、http://www.example.org/locations/us/ny/new_york_city のような固有のURIを持つ。このリソースを扱うクライアントは標準のHTTPメソッドを使う。例えば、
HTTP GETを使ってリソースのコピーをダウンロードする。
更新したコピーをHTTP PUTによりアップロードする。
HTTP DELETEによりそのリソースの全ての表現を削除する。
なお、それぞれのリソースが固有のURIを持っているので、キャッシュ、コピー、ブックマークすることが簡単にできることに注意してほしい。HTTP POSTは一般に副作用のあるアクションに対して使われる。たとえば購入の注文を行ったり、コレクションに情報を追加したりするために使われる。
一例として、次のようなXML形式のユーザーのデータを扱うことを考える。
ユーザーのlocation(住所)を更新するためには、RESTクライアントはまず上記のXMLデータをHTTP GETによりダウンロードする。それからXMLデータのlocationを変更して、HTTP PUTによりアップロードする。
HTTPのメソッドが、リソースを発見するための標準的なメソッドをすべて提供してはいないことに注意してほしい。