TOP > プログラマ2.0日報 > 100個目のエントリは REST の話

あすなろBlogger

facebookに投稿 このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 この記事をクリップ! livedoorclip ユーザー数 BuzzurlにブックマークBuzzurlにブックマーク この記事をtweetする

100個目のエントリは REST の話

2007.12.28

さて、このエントリが100個目だったりします。今日は年内最終仕事日ですので、まあキリもいいかも。

さて、前回紹介した「RESTful Web サービス」です。昨晩寝床で早速読んで(夜中になるとコードを追うのは面倒なので飛ばしましたが。サンプルソースがRubyな本って初めて...)ました。やはり期待にたがわぬ面白本です。で今日会社で早速布教。

で...やはり「REST」って言葉を知らないエンジニアはまだ多いですね。要するにこれ、たとえば前回の紹介記事の URL が、

http://blog.pasonatech.co.jp/nextblog/sugiura/5854.html

であって、決して

http://blog.pasonatech.co.jp/nextblog/blog.cgi?mode=view&user=sugiura&id=5854

じゃないこと....の哲学的根拠みたいなものです(メチャ単純化して言うと)。ですから、「ブログというもの自体の設計」に、この REST の哲学はある程度影響があります。MovableType だと、XML-RPC ベースの投稿API(MovableTypeAPIで有名ですが...)を持っていますが、もう一つの流れとして AtomPub(旧名AtomAPI) による投稿API がある(前アンドキュメンティッドでしたね...今どうなんだろ)わけです。この AtomPub が広く使われている代表的な REST の実例です(ブログサービスには AtomAPIをサポートしている投稿サービスがたくさんあります....)。たとえば投稿するのに HTTP の PUT メソッドを使い、投稿削除するのに DELETE メソッドを使う...というのは、いかにも「RESTっぽい」仕様です。

まあ、REST とは「いくつかの特徴を備えた Web サービス設計の方法論」ですから、単に「GET/POST 以外のメソッドを使ってるからRESTだ!」となるわけではないです。そこらへんは書籍を読むなり、この本の監訳者山本陽平氏の「REST入門」で勉強するのがいいでしょう。

で、REST の発想の根底には、やはり「今年のテーマ」(苦笑)である「温故知新」があります。言い換えると

HTTPのRFCで決まっているものを正しく活用しよう

です。最初から HTTP には PUT だ DELETE だ...のメソッドがあり、かなりキメ細かいステータスの定義があり....なのに、REST 以前では

これらが全然まともに使われていなかった

わけです。それらをキッチリ活用し、シンプル(反対はSOAP)でスケーラブルな Web サービスを構築するための基盤にしてやろう....というのが REST の目的のわけです。

この本の「はじめに」がなかなか気合入ってます。ちょいと引用すると

私たちは、驚くべき新技術について述べるために本書を執筆した。それが今ここで完成し、ホットであり、分散システムの作成方法を根本的に変えることを約束する。World Wide Web のことである。

....もちろん、これ、「マジメなジョーク」です。確かに REST化されたWWWは「ホットであり、分散システムの作成方法を根本的に変える」ものですが、これが「驚くべき新技術」....というわけではないあたりが極めて面白いところです(苦笑)。あと圧巻は付録の「最もよく使用される42のHTTPレスポンスコード」で、よく見かける一覧リストとは一線を画す、「REST視線でのHTTPレスポンスコード」になっています。「404 Not Found」と「410 Gone」の違いを説明できますか?(RFCの記述はわかりづらいんだよね....)

410 (Gone)  重要度:中 このレスポンスコードは、404(Not Found)と似ているが、もう少し情報を提供する。リクエストされたURIが以前はリソースを参照していたが、そうではなくなったことをサーバが知っている場合に使用される。サーバはリソースの新しいURIを知らない。もし知っていれば、301(Permanent Redirect) を送信する。

ぜひぜひ勉強をオススメします。というわけで、よいお年を....

投稿者 : 杉浦 こずえ | 投稿日時 : 2007.12.28 10:57

あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。

トラックバックURL


コメント

名前:え。t。2007年12月30日 23:38

「哲学的根拠」というのを聞いてしっくりきました。メソッドとレスポンスコードが正しく扱われないというのは、ウェブアプリケーションを開発していてずっと気にかかっていました。RESTを聞いたとき、これってRFC通りに作れってことだよな。と思ったのですが、ブラウザが対応していないので、どうにもならないのでした。
ブラウザのアンカーを右クリックするとHTTPメソッド(GET/POST/PUT/DELETE/OPTOIN/HEAD/TRACE)がでてくるといいですね。
DELETEで開くっていうのはちょっとアレですけど。

コメントの送信








カレンダー

<< 2007年12月 >>

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

最新のエントリー

最新のトラックバック

最新のコメント

Tag

バックナンバー