« 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。ぜひ実現してほしい。

投稿者 4bit : 2006年06月15日 12:49 このエントリーを含むはてなブックマーク

トラックバック

このエントリーのトラックバックURL:
http://www.4bit.net/x/mt/mt-tb.cgi/125

コメント

コメントしてください




保存しますか?