Titanium News

Appcelerator Titanium Mobileに関するニュースなどを淡々とお伝えしていきます。

メソッドチェーン型HTTPClientラッパ TiAgent

Christian Sullivan氏 (@euforic) が開発されたjQueryのメソッドチェーンのようにしてHTTPリクエストを投げる事が出来るHTTPClientラッパ TiAgentを公開されています。すべてJavaScriptで書かれたライブラリでコメントやホワイトスペースを除去した圧縮版も合わせてgithubで公開されています。

使い方はReadme.mdに記載されている通りですが、抜粋すると以下の通りです。

 // GETリクエストをする典型的なパターン
 request
   .get('http://example.com/search')
   .end(function(res){

   });

  // QueryString付き
 request
   .get('http://example.com/search', { query: 'tobi the ferret' })
   .end(function(res){

   });
 // 重ねるとこういうことも出来る。
 request
   .get('/search')
   .data({ query: 'Manny' })
   .data({ range: '1..5' })
   .data({ order: 'desc' })
   .end(function(res){

   });


 // endファンクションを引数にするタイプ
 request
  .get('http://example.com/search', function(res){

  });
 // POSTの例
 request
   .post('/api/pet')
   .data({ name: 'Manny', species: 'cat' })
   .set('X-API-Key', 'foobar')
   .set('Accept', 'application/json')
   .end(function(res){
     if (res.ok) {
       alert('yay got ' + JSON.stringify(res.body));
     } else {
       alert('Oh no! error ' + res.text);
     }
   });

ResponceオブジェクトにはHTTP Statusに対応するbooleanプロパティが用意されているので、上記例のようにres.okといった条件分岐がしやすくなっています。