- 2008-04-15 (Tue) 23:15
- Ruby on Rails
Photo by Pulpolux !!!
bobchinさんの日記から「やっぱRESTは厳しいのかな?」。
RESTでは、リソースに対して一意のURLに、これって結局データストレージとして使えるっていうだけなんだと思います。MVCでいうmodelの部分。
これは、これでとても大切な部分なのですが、モデルを検索したり、いろいろ機能をRESTで提供するのは、うまくいかないと思います。
Railsだと、create, show, update, destroyメソッドはいいのですが、index(list)メソッドをXMLで返すようにしても、あまりうまくいかないケースが多いと思います。1画面に出る情報が多岐にわたるので、きれいに表現できないんですよね。
1つのコントローラでHTMLとXMLを返す上での最大の問題は、メソッド名の変更が出来なくなることだと思います。APIとして外部に公開してしまうと、メソッドの変更も気軽にできません。
しかし、RESTfulにすることで、URLやコントローラの設計がきれいになる、Javascriptなど密結合な環境に限定されますが、外部からデータ参照できるなど、利点は多々あります。
RESTの最大の利点は、デザインパターンと同じで、「このシステムはRESTfulになってるから」っていうと、詳しく話さなくても、全体の把握をしやすくなります。
なので、システムをRESTfulにすることはいいことだと思います。RESTfulにして考えると、1つのコントローラにアクションを詰め込むのを止めようとか気がつきますし。
ただ、外部へサイトの機能を公開するためには、別途WebAPIを作る必要があり、それぞれは補完関係にあると思います。
Related posts
- Newer: ブログにはてブのコメントを表示するhatana_bookmark_anywhere.js
- Older: AtomPPのエラー処理
Comments:4
- L.star 08-04-16 (Wed) 0:50
-
Dr. Royの話をApacheCon2008 EUで聞いたのですが、RESTはそもそもWeb APIの代わりとして設計されたものでは*ありません*と熱弁してました。Webのありようを設計したものであって、そもそもWeb Serviceのようなデザインとは似て非なるものだと。比べられることを非常に嫌がっていましたね。RESTはbuzzwordになっちゃった!みたいな。
MVCの”M”を規定している、というのはまさしくその通り。REST自体ステートレスであり、クライアント側でstateful情報を持て!と言っています。完全にサービスとして提供できるレベルを規定しているわけでもありません。しかし、「RESTfulなデータはブックマークできるんだぜ!」というところはずいぶん強調していました;)スライドはこれかな。
http://us.apachecon.com/us2007/downloads/200711_REST_ApacheCon.pdf - masuidrive 08-04-16 (Wed) 12:25
-
bookmarkできるっていうのは、確かに大事ですね。
- takahashim 08-04-16 (Wed) 21:54
-
や、スライド資料を見る限り、そこで言う「Web Services」というのはSOAP+WSDL+UDDI的なWSじゃないですか?
いわゆるWebAPIはREST(つまり資料14ページ目の「LCODC$SS+U」)に対して中立で、REST的にもできれば非REST的にもできます。あと、同じURLでHTMLもXMLも返す、という設計もRESTと直接は関係ないです。
# REST理解への道はまだ遠いのかも……
- masuidrive 08-04-17 (Thu) 0:20
-
たしかにHTMLとXMLの切り替えはRESTとは関係ないですよね。
ただ、RESTfulとXML返しの組み合わせで、機械からの読み込みが可能になるので、API的な使い方ができるなぁという話になりやすいんだと思います。
Trackbacks:3
- Trackback URL for this entry
- http://blog.masuidrive.jp/index.php/2008/04/15/rest-not-equal-ap/trackback/
- Listed below are links to weblogs that reference
- RESTはWebAPIの代わりにはならない from @masuidrive blog
- pingback from 次なるもの » Blog Archive » RESTはWebAPIの代わりにはならない 08-04-16 (Wed) 9:02
-
[...] original article « [ブクシィ] 「日記感覚のブログにいきなりコメントがつけられた感覚」を視覚化する「ブクシィ」を作りました : akiyan.com » [...]
- trackback from winplusの日記 08-04-17 (Thu) 8:31
-
[REST]RESTfulなWebサービスは、WebAPIを提供していないのか…
masuidrive on rails さんの記事で、RESTに関して疑問をもたれているものがありました。何が問題なのかうまく理解できていませんので、まったく勘違いしているかもしれませんが、RESTful Webサ…
- trackback from winplusの日記 08-05-18 (Sun) 8:12
-
[REST]リソースは貧血症?(第2回読書会 RESTful本読書会 第5章)…
第2回読書会 RESTful本読書会 第5章の資料第5章の資料公開 ( RESTful 読書会 ) – Mi manca qualche giovedi`?が公開されています。 とりあげるのは発表資料のここ。 ・オブジェクト指向での設計 -…