2008/04/08

リソースとは何ぞや [ REST ]

ここの所REST周り続きの毎日。
他にネタが無いんだからしょうがない。

さて、題名通り今日はRESTにおいて大事な概念のリソースについて。

ここでリソースというのは情報の事を指します。
例えば……

・今まさに公開しているこのBlog
・オライリージャパンのRESTfulWebサービス本の紹介
・いつも巡回しているエロサイト
・WikipediaのREST解説
・今月のオリコンランキングTOP10

etc,etc…… 例をあげはじめたらキリが無いですね。
さて、ここで問題になるのは、例えば上にあげた例のうちの
「公開しているこのBlog」は、昨日表示した時と来週した時では
画面に表示されるトピックは違う物になっているでしょう。(更新してれば)
「今月のオリコンランキングTOP10」は、4月に表示するか5月に表示するかで
全く内容が変わっている事でしょう。

しかし、どちらも「公開しているこのBlog」、「今月のオリコンランキングTOP10」で
ある事に変わりはありません。リソースを考える上で大事なのは、
「そのリソースの意味」が大事になります。

例えば今公開しているこのBlogであれば

http://gp400fb.blogspot.com/

このアドレスにアクセスする事で、直近N件の佐藤さんが書いたトピックが
表示されるリソースになる訳です。同じくオリコンランキングであれば、

『その月の月別ランキングTOP10』

という意味になりますね。リソースの実体はその時々変化するかもしれませんが、
リソースの意味は不変の物である、という事らしいです。

例えば、GoogleのTOPを開いたら、今までは簡単な検索用テキストボックス
だったのに最近は下に"お勧め"等が表示されるようになりました。
表示される実体は変わりましたがこれは"Googleのトップページ"という情報に変わりはありません。
しかし、これがある日GoogleのトップページにアクセスしたらYahooのページになっていた。
そんな事はありえない……そういう事ですね、きっと。


さて、上記のように"リソース"という概念を踏まえた上で、先ほどの例を見てみます。


・今まさに公開しているこのBlog
・オライリージャパンのRESTfulWebサービス本の紹介
・いつも巡回しているエロサイト
・WikipediaのREST解説
・今月のオリコンランキングTOP10

これらは全てWEB上に存在するものです。上から順に

http://gp400fb.blogspot.com/
http://www.oreilly.co.jp/books/9784873113531/
プライバシー保護の為お見せできません
http://ja.wikipedia.org/wiki/REST
http://www.oricon.co.jp/rank/js/m/

上記のURIで各リソースを参照する事が出来ます。一文字でも違えば当然
これらのリソースにアクセスする事はかないません。

このように、WEB上のリソースはURIという識別子を持つ事は皆さん
ご存知だと思います。
さて、ここで重ねてリソースという概念の復習になりますが同じURIにアクセスしても
必ず同じデータが返ってくる保証はありません。
さっきも言ったように、http://gp400fb.blogspot.com/というURIにアクセスするのが
今日か、それとも一年後かで表示されるデータは全く別のものになっているでしょう。
しかし両者とも僕の書いているBlogという定義は変わりません
このように、一つの識別子では別の内容が返ってくる事があります。
(勿論、毎度毎度同じ内容が返ってくる事もあります)
しかしその識別子の持つ意味は不変なのです。



という事で今日のリソースという概念のまとめ。

・RESTにおける情報は全てリソース
・リソースの内容は変わる事があるが、その意味(定義)は不変
・リソースはURIという識別子を持つ



このリソースという概念がRESTでは非常に重要らしいです。
何故らしい、なのかというとまだ先を調べてないからです!
という訳でまた纏まりの無いまま終わる。

2 件のコメント:

maito さんのコメント...

>プライバシー保護の為お見せできません

公開お願いします。

ふぉー さんのコメント...

色々バレるので勘弁して下さい。
2次3次と色々取り揃えてあるぜ!