RESTful Webサービス¶
最近、RESTという言葉をよく耳にするので、以前から気になっていた本。先日のデブサミ2009でMSのAzureのセッションを聞いた時にも、Cloud Computingの要素技術としてRESTが挙げられていて、オライリーのブースで販売されていて、いつものように10%引きだったので購入した。
で読み終えたのだが、正直難しい。”REST”がBuzzwordになっていることは本書の中でも指摘されているが、筆者が考えの根拠としている論文に基づくとRESTfulとは、Buzzwordの元凶となっている自称”REST”サービスとは区別するために、Resource Oriented Architecture(ROA)という筆者の造語で説明されている。平たくいうと、RESTfulないしROA自体は特定の要素技術のことではなく、Webサービス 1 のあるべき姿を示すアーキテクチャ、考え方と言える。
リソースを中心に考える
各リソースはステートレスでかつアドレス可能である
アドレスつまりURIには処理方法を記述しない
リソースと処理を分離する
アプリケーションの状態はサーバ側で制御してブラウザのbackボタンが効かないようなつくりにするのではなく、クライアント側で制御できるようにする
など、真のRESTであるには、どうすべきかをサンプルを交えて解説されている。
RESTとはなにかという章もあるにはあるが、そこだけ読んでもどういった考え方で、そのメリット、デメリットは何で、従来の自称RESTのREST-RPCハイブリッド型のサービスに対する優位性などはよく分からない。頭から全部読んでようやく理解できた(気がする)。
ちゃんと理解するにはもう一度読みなおして復習せんとアカンなぁ。
そもそも、この考え方は正しいかどうかよりも、一般的に受け入れられているのか、それともminorityなのかがさっぱりわからないというところも読んでいて思った。
- 1
文中でも言及されているが、SOAPやWSDL、UDDIを使ったWebサービスのことではない。