AngularJSアプリケーション開発ガイド 第5章 サーバとの通信 その1

AngularJSアプリケーション開発ガイド

$httpを使った通信

HTTPのGETメソッドでリクエストを行う場合のコード例は以下。

var config = {params: {id: '5'};
$http.get('api/user', config
}).success(function(data, status, headers, config) {
    // 成功時の処理
}).error(function(data, status, headers, config){
    // エラー処理
});

リクエストの詳細な設定

$http.get()等に渡すconfigオブジェクトでは、以下のような項目について設定を行える。

method: HTTPリクエストの種類
url: リクエスト対象のリソース
params: キーと値のペア(URLのパラメータに変換される)
data: リクエストの本体
timeout: リクエストがタイムアウトするまでの時間(ミリ秒単位)

HTTPヘッダーの設定

すべてのリクエストに対してヘッダーを設定したい場合は以下のように書く。

angular.module('MyApp', []).
    config(function($httpProvider) {
        // ヘッダーを削除
        delete $httpProvider.default.headers.common['X-Requested-With'];
        // ヘッダーを追加
        $httpProvider.default.headers.get['DNT'] = 1;
});

特定のリクエストについてのみヘッダーを設定したい場合は以下のように書く。

var config = {
    headers: {'Authorization': 'Basic xxxxxxx'},
    params: {id: 5}
};
$http.get('api/user', config).success(function(){/* 成功時の処理 */});

レスポンスのキャッシュ

デフォルトではキャッシュは無効化されているが、以下のようにして有効化できる。

var config = {cache: true};
$http.get('http://server/myapi', config).success(function(){/* 成功時の処理 */});

1度あるURLに対してリクエストが行われると、2回め以降は同じURLに対してキャッシュされたレスポンスが返される。

リクエストやレスポンスの変換

  • リクエストの際、configオブジェクトのdataプロパティにオブジェクトが含まれている場合、これをJSONに変換する
  • レスポンスにXSRFプレフィックスが含まれている場合、これを取り除く。
  • レスポンスがJSONであった場合はこれをオブジェクトへとデシリアライズする

次回は5.2 ユニットテストから。

コメントをどうぞ

コメントを残す