--- layout: old_post title: Jester ver1.3 変更点メモ permalink: /tatsuya/show/346-jester-ver1-3 ---

先日のエントリの続き
JavaScriptによるRESTクライアント Jester のver 1.3がリリースされたみたい。

:: GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS :: Jester 1.3: Jsonic REST

ざっくりと変更点メモ

JSONサポート

Base.model("User", {format: "json"});
と宣言に{format: "json"}のオプションを付けることでJSONでリクエスト&レスポンスを行う。通信は普通にXMLHTTPrequest。
サーバ側をRailsで実装するなら to_json でOK

respond_to do |format|
 format.xml  { render :xml => @user.to_xml }
 format.json { render :json => @user.to_json}
end

あとprototype.js風にレスポンスヘッダのX-JSONフィールドに書いてあるJSONをコールバック関数の引数として受け取れる。

サーバ側で headers["X-JSON"]="{foo: 'bar'}" とかを返すと

>>> foo=""
>>> c = User.find(5, {}, function(base, json){ foo = json.foo })
GET http://localhost:3000/users/5.json
>>> foo
"bar"

データの型などメタデータを送れば良いかも、と書いてる気がするけど違うかも。

ヘルパーメソッド updateAttributes setAttributes を追加

User.setAttributes({name: "newName", role: "Admin"})
とやるとnameとroleをセットしてくれる、updateAttributesは同時にsave()を実行してくれる。

次期バージョンについて

「次はIFRAMEを使ったクロスサイトの通信をやる」らしい、dojoのIFRAME PROXYのようなことをやるのかな?
よく知らないんだけど、あれはIFRAMEを自分と相手のサイトに置いてドメインを越えよう、ってことだよね。自分がコントロールできるサーバじゃないと意味無いような.....例えば「TwitterのAPIが叩きたい」なんて用途には使えないと思ってたんだけど、違うのかな?
この辺面白そうだし、調べて後で書こう

リンクだけ張っといて自分へプレッシャーを与えるメソッド発動:)