RESTful な API を AngularJS で扱う場合、 ngResource を使うことが多いと思います。 restangular は ngResource とは別の RESTful API のためのモジュールです。
ngResource との違い
README で違いがあげられています。幾つか抜粋します。
- すべての HTTP メソッドをサポート
ETag
のサポート- ネストされたリソースのサポート
/users/123/cars/4
など
インストール
bower でインストールできます。
$ bower install restangular
npm でもインストールできるようです。 Browserify とかと組み合わせるためでしょうか。
使い方
AngularJS のサービスとして使います。
angular.module('app', [
'restangular'
]).controller('Controller', function($scope, Restangular) {
// ...
});
Restangular
が本体です。
/tasks
という API が JSON 配列を帰す場合、以下のようにすればリソースを取得できます。
var tasks = Restangular.all('tasks');
tasks.getList().then(function(tasks) {
$scope.tasks = tasks;
});
.all('tasks')
という部分が /tasks
という URL に対応するようです。
/tasks/:id
という API を叩くには、 one()
というメソッドを使います。
tasks.one(String(id)).get().then(function(t) {
// ...
});
POST するには post()
メソッドです。
tasks.post().then(function(t) {
// ...
});
使ってみた感じ
ngResource よりも抽象化の度合いが低く、学習コストも低く感じました。その割に機能も豊富です。
ngResource が複雑すぎると感じる人には第1の乗り換え候補かもしれません。