yohei-y:weblog

XML と REST/Web サービス関連の話題が中心の weblog です

2005-04-23

REST 入門(その3) 全てはリソースから

» REST 入門 目次

では(やっと) REST の具体例を見ていきましょう。

REST で最も重要な概念はリソースです。以下にリソースの具体例を挙げてみます。

  • 東京の天気予報
  • 2005年8月24日のスケジュール
  • 新花巻駅の写真
  • Dijkstra 著 "Go To Statement Considered Harmful"
  • 僕の最近のブックマーク

REST においてリソースとは名前のつくあらゆる情報を指します(つまり名詞ですね)。 たとえば、「東京の天気予報」というリソースには今日の天気予報も明日の天気予報も含まれるでしょう。 あるいは「2005年8月24日のスケジュール」には僕のスケジュールだけでなく、 あなたのスケジュールも含まれるかもしれません。 リソースで重要なのは、その意味です。 リソースの実体は時間や条件によって変化するかもしれませんが、 その意味は不変です(これが名詞たる所以)。

上記のリソースの例を再度見てください。 これらは WWW (= REST の実装) 上に存在するものばかりです。

  • 「東京の天気予報」は Yahoo Japan の東京地方の天気予報のページ
  • 「2005年8月24日のスケジュール」は会社のグループウェアのスケジュール
  • 「新花巻駅の写真」は Flickr に登録した東北旅行のときの一枚の写真
  • 「Dijkstra 著 "Go To Statement Considered Harmful"」はこのページ
  • 「僕の最近のブックマーク」はソーシャルブックマークサイト del.icio.us のページ

といったぐあいです。

全てのリソースは識別子を持ちます。 Web の識別子といえば、URI (Uniform Resource Identifier) ですね。 もう一度サンプルを見てください。

それぞれの URI は以下のようになります。

  • http://weather.yahoo.co.jp/weather/jp/13/4410.html
  • https://example.com/schedule/20050824
  • http://www.flickr.com/photos/60043209@N00/6337155/
  • http://www.acm.org/classics/oct95/
  • http://del.icio.us/yohei

ここで、リソースの特徴を考察してみます。 上記の例のとおり、リソースは URI で識別される情報です。 URI で識別される情報は、時間や条件によって内容が変化する可能性があります。 たとえば、今日見る天気予報と明日見る天気予報では、含まれる内容は異ります。 しかし、両者とも東京の天気予報であることにはかわりありません。 今、リソースの内容と書きましたが、その内容は取得する時点でのリソースの状態(state)で決まります。 天気予報というリソースは、時間の経過と共に状態が変化していくと考えるとわかりやすいと思います。 もちろん状態が変化しないリソースもあります。 ダイクストラのレターの状態が変化する可能性はもうないですよね。

ここまでで、REST におけるリソースの特徴をまとめると以下のようになります。

  • 全ての情報はリソース
  • リソースは識別子(URI)を持つ
  • リソースの状態は時間や条件とともに変化する可能性がある
  • リソースの意味は時間や条件が変化しても不変である

このリソースが、REST では非常に重要になります。 その秘密は、次回以降で説明します。

ラベル: ,