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の乗り換え候補かもしれません。