2014-08-30

jquery-jsonrpc2.0のバッチリクエストとPromise対応

オレオレJSON-RPCライブラリがバッチリクエストに対応していなかったので対応した。こんな風に書けるようになった。
$.jsonrpc.defaultUrl = '/rpc';

// Send 3 requests at once.
$.jsonrpc([{
    method: 'getEventStatus'
}, {
    method: 'getUserStatus'
}, {
    method: 'sendLoginStatus',
    params: {status: 'login'}
}]).done(function(responses) {
    results.forEach(function(response) {
        if (response.result) {
            doSomething(response.result);
        } else {
            handleError(response.error);
        }
    });
}).fail(function(error) {
    // timeout or 503 or bad response
});
なぜ今になってメンテしたかというと、モバイルアプリはクライアントが任意に複数のAPIコールを一つのHTTPリクエストに纏められた方が良いよねと最近思う様になった*1 のと、今日のYAPCのセッションでJSON-RPCのバッチリクエストについて説明があったので。YAPCの感想はまた次のエントリで。

あとbowerのリポジトリを眺めていたら、WebSocketを使う物を見つけたのでこちらの方がおすすめです。

脚注:
*1: Orreily「ハイパフォーマンスブラウザネットワーキング」の影響

このエントリーをはてなブックマークに追加