« DHH loves REST!? その1(RESTプラグインの紹介) | メイン | Rails勉強会@東京 第7回 »
2006年06月15日 (木)
DHH loves REST!? その2(ActiveResource) [テクニカル]
その1のつづき。ActiveResourceはさらにヤバイ。
ActiveResource
moroの日記 - 日本Rubyカンファレンス2006 二日目より
- ActiveResouce!!
- one more thingとか言うあたりがマカー
- Webサービスで得られる情報をActiveRecordライクに。
- 当然CRUDできる。
- Rails 1.2の目玉。
- 6/11 22:00 JST時点ではsvnツリーにもない模様。
- ValidationとかAssociationも使えるんですかね? Validationは大丈夫そう。
- RESTしか対応しない。SOAPとかXML-RPCは嫌いらしい。
- ちゃんと使う似は厳しい規約が必要(HTTPメソッドだけでCRUDできるとか)。Rails製アプリケーション間での使用が中心になるのかなぁ。
UIE Japan Developer Blog: 日本Rubyカンファレンス2006レポート (2006/06/11)よりDHH > 「XMLRPCもSOAPも使いたくない」
Rails1.2のtrunkにもまだ上がっていない様子のActiveRecordからCRUDを操作できるActiveResourceの話が面白い。URLをモデルの中に隠蔽して後は気にせず、AR同様に使うことができる。認証周りは、HTTP Authentication, Digest認証, SSLを誰かが作ってくれるかも。
Person = ActiveResorce::Struct.new do |p|
p.uri "http;//www.example.com/people"
p.credentials :name => "dhh", :password => "secreat"
end
david = Person.new(:name => "David")
# GET http://www.example.com/people
# <person><name>David<name></person>
# => Location: http://www.exapmle.com/people/2
david.find(:name => "David")
# PUT http://www.example.com/people
# <person><name>David Heinemeier Hasson</name></person>
# => (200 OK)
david.save
class ActiveResource::Base
uri "http://www.example.com"
credentials :name =>"dhh", :password => ""
end
何がヤバイって、「ActiveResourceでアクセス可能なAPI」という合意を得て、REST APIのデファクトスタンダードを形成する可能性があるってこと。細かいことを言えばfindの規約とかどうするかわからないけど、OpenSearchでもいいし、とにかくRailsの機能として実装すればそれがデファクトになりうる。
例えばすごく単純に、columnカラムがquerywordなリソースを取ってくるには/controller?column=queryword
とかでもいいんじゃない?pageとかとバッティングするのがちょっとまずいけど。
実はActiveResourceに似た構想はちょっと前に考えてたんだけど(とか言ってみるテスト)。僕の着想のベースは、Ajaxのクロスドメイン制約を回避するために、proxyのようなものが必要なので、それをRailsベースで作れないかなぁということだった。ActiveResourceができればproxyどころかもっと便利に使える。さすがDHH。ぜひ実現してほしい。
トラックバック
このエントリーのトラックバックURL:
http://www.4bit.net/x/mt/mt-tb.cgi/125