web-dev-qa-db-ja.com

ngResourceよりもRestangularを使用する利点は何ですか?

ngResource既にはものごとを実装するのに本当に単純なようです...

Restangular over ngResource を使用することの利点/欠点は何ですか?

1.1.3 $resourceはpromiseを返し、- latest PR commit を使用して補完できます。 Restangularが行う追加の動詞をサポートするために、$resourceに将来のサポートが提供されますか?そして、それが起こると、Restangularは消えて無関心になるようです。

133
Dan Kanze

私はRestangularの作成者です。

READMEに関するセクションを作成しましたが、$ resourceとの違いがあります。こちらで確認できます https://github.com/mgonto/restangular/blob/master/README.md#differences-with-resource

とにかく、要約すると、追加機能と約束ベースのアプローチに加えて、RestangularはすべてのURLも処理できるため、それらについて何も知らなくてもよいという考え方です。

車用に次のようなものがあるとします:/ users/123/cars/456

$ resourceでは、そのURLを手動で作成する必要があり、このための$ resourceオブジェクトも手動で作成する必要があります。 Restangularは、URLを「記憶」することでこれを支援します。

ある場所でやるなら

Restangular.one("users", 123).get().then(function(user) {
  $scope.user = user;
});

// Some other code

//Automatically does the request to /users/123/cars as it remembers in which object you're asking it.
$scope.user.getList('cars')

お役に立てれば!

232
mgonto

RestangularのRequestInterceptorは、リクエストを行う前にオブジェクトからいくつかのフィールドを削除するのに非常に便利であることがわかりました。現在作業しているほとんどのREST webservicesは、たとえばURLのPUTリクエストのオブジェクトデータにidを期待していません。一般に、PUTによって更新できない追加のデータフィールド(id、タイトルの設定によって生成されるスラッグなど)は期待していません。これをRestangularで簡単に実行できることがわかりましたが、$ resourceをクリーンな方法で使用する方法がわかりませんでしたが、どうにかして可能だと確信しています。

もちろん、これらの余分なフィールドを無視するようにWebサービスを変更することもできますが、それは常に可能ではありません。

8
awdng

ngResourceは、最新の安定版リリース(現在1.0.6)ではpromiseを返しません。さらに、RestangularはngResourceよりも多くの動詞を公開しているように見えます(PUT、OPTIONS、PATCHなどを公開しています)。

追加の動詞を必要とせず、AngularJSの不安定なブランチ(ngResourceのpromiseを含む)にいる場合は、ngResourceではなくRestangularを使用する主な理由はわかりません。

快適に感じるものなら何でも使用してください。

3
rtcherry

上記の回答までのフォローとして、およびnew読者のために、私のような読者はそれらの考えに興味があります:

「そして、それが起こると、Restangularは消えて、無関心になるように思われます。」

「GoogleのngResourceが欠けていたすべての機能に追いついたため、この男がRestangularのサポートを終了すると、3か月後に何が起こるのか」

  • [2年前に尋ねた]

私の意見では、onlyは、open-sourceの存続を保証しますライブラリは、それを中心に構築されたコミュニティです。最良の例は、mariaDBWebScaleSQLで、どちらも生まれました優れたリレーショナルデータベース管理システムMySQLへの分岐点として。

この執筆時点で、Restangular having 6699 stars and 727 forksは、angularJs 2.0およびES6をサポートすることを目的としたRestangular 2.0に移行しています。

1
Salem Ouerdani

最小限のサポートでこれまでずっと実行したい簡単なWebサイトの場合、組み込みのangular httpHttpClientを使用します私が大好きなプロジェクトに取り組んでいて、すべてのクールなテクノロジーを楽しんで使用しようとしているときは、Ngx-Restangularを使用します

また、名前が示すように、ngx-restangularはRESTfulサービスでのみ動作することを知っておく必要があります。したがって、SOAPを提供するサービスでは、Ngx-Restangularを使用できません。

https://ngx-restangular.com/

と言われている私はいつもngx-restangularを使用します私はいつもクールだと思うプロジェクトに取り組み、私が思うものを実装しようとしていますベスト。

幸運を祈ります!

0
Nour Lababidi