--- layout: old_post title: Jester-RESTfullなRails向けJavaScriptライブラリ permalink: /tatsuya/show/301-jester-restfull-rails-javascript ---
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行くらいで非常にシンプル & 軽量、短いし一度読んでみようかな、機能追加も楽にできそうだ。