解決策
数千のシステムがインターネット上で自身を公開しようとしたが、それぞれが特注のRPCプロトコルを構築したため、どのクライアントもそのうち二つと通信できなかった。障害は知能や帯域ではなく、各サービスに特化したインターフェースであった。
Fieldingの学位論文は、最小限の要件が均一インターフェースであることを示した。すなわち、リソースをURIで識別し、表現を通じて操作し、メッセージを自己記述的に保ち、ハイパーメディアを状態のエンジンとして用いることであり、これはクライアントサーバ、ステートレス性、キャッシュという既存の制約の上に重ねられる。
RESTは新しい動詞を発明するのではなくHTTPの汎用動詞を再利用したため、ページを取得できるクライアントはAPIも呼び出せた。これがRESTがWeb APIの既定となり、RPCやCORBAのスタイルを置き換えた理由である。
達成したこと
HTTPの動詞とリソースアドレスをインターフェースとして再利用する。
うまくいった理由
均一インターフェースにより、単一の汎用クライアントとライブラリ群がすべてのREST APIに対して機能し、統合のコストを大幅に削減する。
RESTは定義するのではなく制約し、HTTPの上に構築されているため、展開に新しいプロトコルやスタックを必要としなかった。
ステートレス性とキャッシュにより、ミドルウェアは呼び出し間でサーバが呼び出し元を識別することなくリクエストをスケールできた。
ハイパーメディアを状態のエンジンとすることで、クライアントは各エンドポイントをハードコーディングする代わりにアフォーダンスを発見できる。
応用できること
すでにどこでも動いているものから導かれた標準は、その到達範囲を受け継ぐ。時に最大の設計判断は、追加することを拒む制約である。
その後
Fieldingの学位論文は2000年に発表され、RESTは公開および内部のWeb APIの支配的なスタイルとなり、SOAPスタイルのRPCを置き換えた。後に慣習(OpenAPI、およびハイパーメディアをしばしば十分に活用しないHTTP上のCRUDという解釈)を獲得し、最も厳格なハイパーメディア形式はほとんど実装されなかったと主張する者もいるが、均一インターフェースという考え方が勝利した。
出典をたどる
出典
- Representational State Transfer (REST), Fielding Dissertation Chapter 5 Roy T. Fielding / University of California, Irvine · ics.uci.edu
- Representational state transfer Wikipedia · en.wikipedia.org