RESTful Webサービス 第4章リソース指向アーキテクチャ(ROA)
RESTはアーキテクチャではなく一連の設計条件。
リソースはURIで表すことができる。リソースの表現は複数あることがある(言語の違いなど)。それを取得する手段はいくつかある(URIを別にする、ヘッダで区別するなど)。リソース間はリンクでつながる。
ROAの特徴。
- アドレス可能性
リソースをURIで指し示すことができるってこと。
おもしろかったのがGmailの話で、Gmailはエンドユーザーに見えるURIが一つしかないのでアドレス可能ではないが、その背後にはアドレス可能なWebサイトが存在している。つまり、そのアドレス可能なWebサイトの利用者はエンドユーザではなく、Gmailアプリケーションであると言える。
- ステートレス性
すべてのHTTPリクエストが完全に分離していること。クライアントが送信するHTTPリクエストには、サーバーがそのリクエストを処理するために必要な情報がすべて含まれる。
ステートレス性についてはyohei-y:weblog: ステートレスとは何かが超分かりやすいと思う。
- 接続性
リソースがリンクを持っていてそれをたどることができるってこと。それによってアプリケーションの状態が遷移する。
- 統一インターフェース
重要なのは「統一」されていること。GET、PUT、DELETE、HEAD、OPTIONS、(POST)。
作成するリソースのURIが分かってる場合はPUT、分からない(サーバー側が決定する)場合はPOST(従属リソースの作成)とか。
いろいろ盛りだくさんな章でした。
次は引き続き5章と6章を読む予定。リソース指向サービスの設計になるのでおもしろそうな気がします。