RESTful Webサービス 第4章リソース指向アーキテクチャ(ROA)

ROAは、RESTful Webサービスによって問題を解決する手段である。

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章を読む予定。リソース指向サービスの設計になるのでおもしろそうな気がします。