it-swarm.com.de

Was ist der Vorteil der Verwendung von Restangular gegenüber ngResource?

ngResource bereits scheint wirklich einfach zu sein um Dinge mit ... zu implementieren.

Was sind die Vorteile/Nachteile der Verwendung von Restangular over ngResource ?

1.1.3 $resource gibt Versprechen zurück und kann mit latest PR commit impliziert werden. Wird zukünftig $resource Unterstützung angeboten, um zusätzliche Verben zu unterstützen, die Restangular unterstützt? Und wenn das passiert, scheint Restangular so zu sein, dass es verschwindet und irrelivant wird.

133
Dan Kanze

Ich bin der Schöpfer von Restangular.

Ich habe einen Abschnitt über README mit den Unterschieden zur $ -Ressource erstellt. Sie können sie hier ansehen https://github.com/mgonto/restangular/blob/master/README.md#differences-with-resource

Zusammenfassend kann gesagt werden, dass Restangular neben den zusätzlichen Funktionen und dem auf dem Versprechen basierenden Ansatz auch alle Ihre URLs verarbeiten kann, so dass Sie nichts darüber wissen müssen.

Angenommen, Sie haben so etwas für Autos:/users/123/cars/456

In $ resource müssen Sie diese URL manuell erstellen, und Sie müssen auch das $ resource-Objekt manuell erstellen. Restangular hilft Ihnen dabei, indem Sie sich die URLs "merken".

Also, wenn Sie an einem Ort tun

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')

Hoffe das hilft!

232
mgonto

Ich fand den RequestInterceptor von Restangular recht praktisch, um einige Felder aus dem Objekt zu entfernen, bevor ich die Anfrage stelle. Die meisten REST - Webservices, mit denen ich zurzeit arbeite, erwarten nicht die ID in den Objektdaten in einer PUT-Anforderung, beispielsweise nur in der URL. Im Allgemeinen erwarten sie keine zusätzlichen Datenfelder, die nicht von PUT aktualisiert werden können (wie die ID oder ein Slug, der durch Setzen des Titels usw. generiert wird). Ich habe festgestellt, dass dies mit Restangular unkompliziert ist, während ich noch nicht herausgefunden habe, wie man es mit $ resource sauber macht, aber ich bin mir sicher, dass es irgendwie möglich ist.

Natürlich könnte man auch den Webservice ändern, um diese zusätzlichen Felder einfach zu ignorieren, aber das ist nicht immer möglich.

8
awdng

ngResource gibt keine Versprechen in der neuesten stabilen Version (derzeit 1.0.6) zurück. Außerdem sieht es so aus, als würde Restangular mehr Verben als ngResource verfügbar machen (es stellt PUT, OPTIONS, PATCH usw.) bereit.

Wenn Sie die zusätzlichen Verben nicht benötigen und sich auf dem instabilen Zweig von AngularJS befinden (der Versprechen für ngResource enthält), sehe ich keinen Hauptgrund, Restangular über ngResource zu verwenden.

Verwenden Sie, was Sie sich wohl fühlen.

3
rtcherry

Nachfolgend bis zu den obigen Antworten und für neue Leser, die sich wie ich für diese Gedanken interessieren:

"Und wenn das passiert, scheint Restangular zu verschwinden und wird irrelivant."

"Was passiert in drei Monaten, wenn dieser Typ die Unterstützung für .__ aufgibt? Restangular, weil Googles ngResource alle Funktionen einholt Es fehlte."

  • [vor 2 Jahren gefragt]

Meiner Meinung nach ist die einzige Garantie zum Überleben einer Open-Source-Bibliothek die Community, die darauf aufgebaut ist. Das beste Beispiel wäre mariaDB und WebScaleSQL, die beide als wachsende Verzweigung zum großen relationalen Datenbankverwaltungssystem MySQL geboren wurden.

Zu diesem Zeitpunkt geht Restangular having 6699 stars and 727 forks nun auf Restangular 2.0 über, das die Unterstützung von angleJs 2.0 und ES6 unterstützen soll.

1
Salem Ouerdani

Für eine schnelle, einfache Website, die Sie für immer mit minimalem Support ausführen möchten, würde ich den eingebauten eckigen http HttpClient verwenden, wenn Sie an einem Projekt arbeiten, das ich liebe und das ich genieße alle coolen Technologien dann benutze ich Ngx-Restangular

Sie sollten auch wissen, dass ngx-restangular nur mit RESTful-Diensten arbeitet, wie der Name vermuten lässt. Für Dienste, die SOAP bereitstellen, können Sie Ngx-Restangular daher nicht verwenden.

https://ngx-restangular.com/

Ich würde meistens ngx-restangular verwenden, da ich immer an einem Projekt arbeite, das ich cool finde und versuche, das umzusetzen, was ich für das Beste halte.

Viel Glück!

0
Nour Lababidi