2005-04-23

REST 入門

日本語の REST のリソース集を以前作ったのだが、 日本語では一般人向けの解説がない。 sheepman 氏の REST のページはすばらしいんだけど、多少わかっている人向けだ。 市山氏のプレゼン資料は RoyF の論文を詳しく解説していてよいのだけれど、いかんせんアカデミックすぎる。 技術的な要素も抑えつつ、入門者にもわかりやすい解説はないものかと探していたのだが、みつからない。 英語の文書を訳すことも考えたんだけど、あまりよいものが見つからない。
で、結局自分で書くことにした。
最初はひとつのポストで済ませるつもりだったんだけど、書き始めたら長くなってしまったので、複数のポストに分けることにした。 えらそうなことを書いたが、内容は「ないよりマシ」といったレベルだろう。
前書きが長くなったけど(ここから始まりです。ですます調なのは入門記事だから)、 この記事(から始まる一連のポスト)は Representational State Transfer (REST) の日本語での紹介です。 僕(yohei)自身、REST を完全に理解しているわけではありませんので、 間違いやコメントなどを yoheiy at gmail dot com まで頂ければと思います。 もちろん、この日記のコメントでご指摘頂いても構いません。
このポストは目次用です。新しい記事がポストされたら随時変更します。 一連の記事のインデックスページとしてご利用ください。
  1. はじめに
  2. アーキテクチャスタイルとは
  3. 全てはリソースから
  4. HTTP GET -- その絶大な効果(IE で画面が真っ白になる場合はメニューの表示→エンコード→Unicode(UTF-8) を選んでください)
  5. 四つの動詞 -- GET, POST, PUT, DELETE
  6. ハイパーリンクと XML
  7. ハイパーメディアの可能性
  8. REST でないもの
  9. REST と SOAP
  10. 終わりに
ではまず「はじめに」から
以下は追記です(2007-09-21)。 その後、Web 上でいろいろと REST に関する記事を書いたり、雑誌に連載をしたりしています。
さらに追記(2010-04-08) このエントリを拡張してさらに詳しくRESTについて書いた本を書きました。こちらもぜひご参照ください。

9 件のコメント:

  1. POSTとPUTの説明が逆では?たしかPUTが新規作成であり、POSTは送ったリソースの処理を指定したURIに任せるということだったと思いますが。

    返信削除
  2. 返答を http://yohei-y.blogspot.com/2005/05/rest-2-post-put.html
    に書きました。

    返信削除
  3. RESTと言えば、「クリックすると更新系のURLをたたくようなリンクを作りたかったんだけど、普通にリンクしたらGETになるから、JavaScriptを使ってPOSTするようにする」というのは、REST的には推奨されるUI設計だと思いますか?

    返信削除
  4. REST 的にはリソースの更新は PUT でやってね、ということだと思いますよ。

    PUT できないブラウザの場合でなおかつ更新をリンクでやりたいなら、仕方ないんじゃないですかね。

    返信削除
  5. 遅れましたが、yoheiさま、ご回答ありがとうございます。たいへん丁寧な説明で、よくわかりました。「疎結合」がキーワードだったのですね。
    RESTは、いわゆるCRUD(Create,Read,Update,Delete)を表すんですね。個人的にはSearchという概念があったらなーと思います。

    返信削除
  6. CRUD の R は Read もありますが、Retrieve でもあります。検索は GET + query string でできますよー

    返信削除
  7. 4.HTTP GET -- その絶大な効果
    の内容が表示されないです。
    ほかは、表示されます。

    返信削除
  8. IE で画面が真っ白になる場合はメニューの表示→エンコード→Unicode(UTF-8) を選んでください。ご指摘ありがとうございました。

    返信削除
  9. "webを支える技術"を注文しました。
    RESTのわたしなりの解釈はURIをうまく利用して欲しい機能を実現するということではないかとおもうのですが?

    いま"RESTful Web Services"を読んでいるのですがRESTの概念が良く分からずにいました。

    返信削除