2006年04月22日 20:50 [Edit]
RESTは簡単なんだけど...
というわけで早速質問です。
yohei-y:weblog: WEB+DB PRESS Vol.32 に REST の記事を書きましたただ、やっぱり REST は難しいですね。人に説明するたびに思います。記事でわからないことがあれば、ここにコメントしていただければできる範囲で返答しようと思います。
なぜAtomPPでは、記事の新規作成がPOSTで、更新がPUTなのでしょう。
WebDAVやFTPといったファイル操作系のProtocolでは、PUTはコンテントをアップロードするためのコマンドです。それとの整合性を考えたら、コンテントの新規作成をPUTでやって悪いわけというのが思いつきません。
あるいは、URIの名前を、Clientの意向で決める場合(例えばアップロード後のURIが/dir/something_newだった場合)はPUT、Server側に任せたい場合はPOSTという理解でいいのだろうか。
どうもPUTとPOSTが重複して見えるのです。
その点を除けば、RESTはむしろ「古き佳きステートレスプロトコル」という感じで、をっさんをばさんにはむしろとってもわかりやすいのではないでしょうか?
あと、やはり実装例が欲しい。これは手慰みに作ろうかしらん....
naoyaグループ - naoyaの日記 - WEB+DB PRESS Vol.32#2そういえば昨日書き忘れたけど、yohei さんの REST 解説も載ってた。これは残念ながら連載じゃないみたいだけども。yohei さんに REST 周りの連載をしてもらいたい人手あげて。はいはいはい!
というわけで、私もさりげなく手を挙げておきます。が、なーんかこれで博士にしてくれるとはずいぶん博士も軽くなったのかなあと思ったりもしたりして....だってBarners-Leeの当初のもくろみからほとんど逸脱してないんだもん。もちろん実装上の留意点とか、現場レベルでの難しさは別なんだけど、かつてずっとあったものを別の名前で呼んでいるだけのように思えなくもないのです。
Dan the RESTless
Posted by dankogai at 20:50│Comments(6)│TrackBack(1)
この記事へのトラックバックURL
この記事へのトラックバック
「村田真」って、これはXMLの村田先生ですよね?
XML入門
村田 真
404 Blog Not Found:RESTは簡単なんだけど...-村田真さんのコメント
RESTのPh. D dissertationは力作ですよ。「これで博士
にしてくれるとはずいぶん博士も軽くなったのかなあ」
とまで書く...
博士よ軽くなれ【404 Blog Not Found】at 2006年05月09日 14:39
この記事へのコメント
そのものずばりの答えが、
http://yohei-y.blogspot.com/2005/05/rest-2-post-put.html
に書いてありますよ。
http://yohei-y.blogspot.com/2005/05/rest-2-post-put.html
に書いてありますよ。
Posted by torum at 2006年04月22日 23:41
同じことですが、下記にもある
「Common REST Mistakes」
http://www.prescod.net/rest/mistakes/
が参考になります。
具体的には、
3.Do not depend on URI's internal structure.
「According to Web Architectural principles, most URIs are opaque to client software most of the time. In other words, your public API should not depend on the structure of your URIs.」という事みたいです。
「Common REST Mistakes」
http://www.prescod.net/rest/mistakes/
が参考になります。
具体的には、
3.Do not depend on URI's internal structure.
「According to Web Architectural principles, most URIs are opaque to client software most of the time. In other words, your public API should not depend on the structure of your URIs.」という事みたいです。
Posted by torum at 2006年04月22日 23:46
torumさん、
コメントありがとうございました。確かにRESTの要諦というのは、「一期一会でもきちんと動く事」ということにある以上、URIが存在する即Resourceが何らかの形で存在するとなる以上、PUTはUpdate(それがたとえOverwriteであっても)ということになりますね。私の憶測もそう外してはなかったように思います。
これの説明、記事中にしておいてもよかったのに。
Dan the RESTLess
コメントありがとうございました。確かにRESTの要諦というのは、「一期一会でもきちんと動く事」ということにある以上、URIが存在する即Resourceが何らかの形で存在するとなる以上、PUTはUpdate(それがたとえOverwriteであっても)ということになりますね。私の憶測もそう外してはなかったように思います。
これの説明、記事中にしておいてもよかったのに。
Dan the RESTLess
Posted by 弾 at 2006年04月22日 23:55
POST と PUT については以前 http://yohei-y.blogspot.com/2005/05/rest-2-post-put.html に書きました。
弾さんのおっしゃるとおり、クライアントがリソースの URI を決めるか、サーバが決めるかの違いです。Atom Publishing Protocol が対象とするデータモデルはファイルシステムのような階層構造ではなく、blog システムのようなフラットな構造なので、POST でリソース新規作成、ということになっているのだと思います。
このあたりの話題は、昨年の XML 開発者の日での山田さんの発表のスライド 33 ページからが参考になります。http://yohei-y.blogspot.com/2005/11/blog-post.html
弾さんのおっしゃるとおり、クライアントがリソースの URI を決めるか、サーバが決めるかの違いです。Atom Publishing Protocol が対象とするデータモデルはファイルシステムのような階層構造ではなく、blog システムのようなフラットな構造なので、POST でリソース新規作成、ということになっているのだと思います。
このあたりの話題は、昨年の XML 開発者の日での山田さんの発表のスライド 33 ページからが参考になります。http://yohei-y.blogspot.com/2005/11/blog-post.html
Posted by yohei at 2006年04月23日 00:21
おっと torum さんと被りました。記事についてはそのとおりですね。申し訳ない
Posted by yohei at 2006年04月23日 00:23
RESTのPh. D dissertationは力作ですよ。「これで博士
にしてくれるとはずいぶん博士も軽くなったのかなあ」
とまで書くのなら、もちろん読んだんでしょうね?
Tim B-Lが独力でREST相当品を考えたという証拠はどこかに
あります? Roy FieldingなしにHTTPもRESTもできなかったと
私は思っています。そして、RESTのもともとの名前は、HTTP
のモデルでした。
にしてくれるとはずいぶん博士も軽くなったのかなあ」
とまで書くのなら、もちろん読んだんでしょうね?
Tim B-Lが独力でREST相当品を考えたという証拠はどこかに
あります? Roy FieldingなしにHTTPもRESTもできなかったと
私は思っています。そして、RESTのもともとの名前は、HTTP
のモデルでした。
Posted by 村田 真 at 2006年05月09日 10:27
