Jester-RESTfullなRails向けJavaScriptライブラリ
2007-04-06
RESTfullなRailsのためのJavaScriptライブラリ Jester がヤバイ、素敵すぎる。
:: GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS :: Jester: JavaScriptian REST
上のサイトを見てもらえば一目瞭然だけど、RESTfullなRails WEBサービスへシームレスにアクセスできている。
例えば、以下のような流れを試すと分かり易い
ruby script/generate scaffold_resource Book title:string review:text
//titleとreviewを持ったBookというリソースがあるとして
rake migrate
ruby script/server start
//Rails側準備完了
//以下JavaScript環境、JesterをFireBugs上でテスト
>>> Base.model("Book","http://localhost:3000","book","books")
>>> ruby = Book.create({title: "オブジェクト指向スクリプト言語Ruby", review: "巻末の用語集が面白い"})
POST http://localhost:3000/books.xml (400ms)prototype.js (line 866)
>>> ruby.id
5
>>> delete ruby
true
>>> ruby = Book.find(5)
GET http://localhost:3000/books/6.xml (146ms)prototype.js (line 866)
<?xml version="1.0" encoding="UTF-8"?>
<book>
<id type="integer">6</id>
<review>巻末の用語集が面白いだよ</review>
<title>オブジェクト指向スクリプト言語Ruby</title>
</book>
>>> ruby.title
"オブジェクト指向スクリプト言語Ruby"
>>> ruby.review
"巻末の用語集が面白いだよ"
>>> ruby.title = "オブジェクト指向スクリプト言語Ruby アスキー出版"
"オブジェクト指向スクリプト言語Ruby アスキー出版"
>>> ruby.save()
POST http://localhost:3000/books/5.xml (147ms)prototype.js (line 866)
>>> delete ruby
true
>>> ruby = Book.find(5)
GET http://localhost:3000/books/5.xml (411ms)prototype.js (line 866)
>>> ruby.title
"オブジェクト指向スクリプト言語Ruby アスキー出版"
のように、まるで本当のActiveRecordみたいにスマートだ。ActiveRecordがRubyオブジェクトをSQLへ変換してDBへ投げるように、JesterがJavaScriptオブジェクトをXMLに変換してRailsへ投げている。しびれる
是非一度 FireBugs辺りで触って試して欲しい、サーバ側はもちろん scaffold_resouce で作ったRailsで。ちなみに Jester.js のソースを見ると300行くらいで非常にシンプル & 軽量、短いし一度読んでみようかな、機能追加も楽にできそうだ。

