ngResource
semble déjà très simple à mettre en œuvre avec ...
Quels sont les avantages / inconvénients de l'utilisation de Restangular sur ngResource ?
1.1.3 $resource
renverra des promesses et peut être implémenté en utilisant le dernier commit PR . Un support futur sera-t-il proposé pour $resource
prendre en charge des verbes supplémentaires que Restangular fait? Et si cela se produit, Restangular semble disparaître et devenir irréversible.
javascript
angularjs
restangular
ngresource
Dan Kanze
la source
la source
$http
modifications majeures de la version sont apportées à angularjs - vous ne pourrez pas effectuer de mise à niveau car les appels de service de Restangualr s'attendront à "autre chose" et vous allez finir par vider ce cadre que vous "avez décidé d'utiliser".Réponses:
Je suis le créateur de Restangular.
J'ai créé une section sur le README avec les différences avec $ resource. Vous pouvez les consulter ici https://github.com/mgonto/restangular/blob/master/README.md#differences-with-resource
Quoi qu'il en soit, en résumé, outre les fonctionnalités supplémentaires et l'approche basée sur la promesse, l'idée est que Restangular peut également gérer toutes vos URL, de sorte que vous n'ayez rien à savoir à leur sujet.
Supposons que vous ayez quelque chose comme ceci pour les voitures: / users / 123 / cars / 456
Dans $ resource, vous devrez construire cette URL manuellement et vous devrez également construire l'objet $ resource pour cela manuellement. Restangular vous aide en cela en "mémorisant" les URL.
Donc si tu le fais dans un endroit
J'espère que cela t'aides!
la source
.one('users', 123)
ce plus ou moins "savoir" sur votre URL que'/users/123'
? (je joue juste l'avocat du diable) Il semble que'/foo/123/bar/123'
c'est beaucoup plus facile que.one('foo', 123).one('bar', 123)
.var user = Restangular.one('users', 123).getList()
. Plus tard dans le code ou dans un autre contrôleur, vous le faitesuser.getList('buildings')
. Ici, vous connaissez juste le type suivant qui est les bâtiments, mais il interroge/users/123/buildings/
, vous n'avez donc pas à connaître l'URL complète tout le temps$resource
- je ne sous-entends pas que cela deviendra hors de propos par quelque moyen que ce soit, juste qu'il a été mentionné. Y a-t-il des inconvénients ou des pièges factuels dont nous devrions être conscients?J'ai trouvé RequestInterceptor de Restangular assez pratique pour supprimer certains champs de l'objet avant de faire la demande. La plupart des services Web REST avec lesquels je travaille actuellement n'attendent pas l'id dans les données d'objet dans une requête PUT par exemple, juste dans l'URL. En général, ils ne s'attendent pas à des champs de données supplémentaires qui ne peuvent pas être mis à jour par PUT (comme l'identifiant ou un slug généré en définissant le titre, etc.). J'ai trouvé que c'était simple avec Restangular alors que je n'ai pas compris comment le faire avec $ resource de manière propre, mais je suis sûr que c'est possible d'une manière ou d'une autre.
De toute évidence, on pourrait également modifier le service Web pour ignorer simplement ces champs supplémentaires, mais ce n'est pas toujours possible.
la source
ngResource ne renvoie pas de promesses dans la dernière version stable (actuellement 1.0.6). De plus, il semble que Restangular expose plus de verbes que ngResource (il expose PUT, OPTIONS, PATCH, etc.).
Si vous n'avez pas besoin des verbes supplémentaires et que vous êtes sur la branche instable d'AngularJS (qui inclut des promesses pour ngResource), je ne vois aucune raison majeure d'utiliser Restangular sur ngResource.
Utilisez ce avec quoi vous vous sentez à l'aise.
la source
$resource
renverra des promesses et peut être implémenté en utilisant le dernier commit PR. stackoverflow.com/questions/16429832/… Un support futur sera-t-il proposé pour$resource
prendre en charge des verbes supplémentaires? Et si cela se produit, Restangular semble disparaître et devenir irréversible.Pour faire suite aux réponses ci-dessus et pour les nouveaux lecteurs, comme moi, intéressés par ces pensées:
À mon avis, la seule garantie de survie d'une bibliothèque open-source est la communauté construite autour d'elle. un meilleur exemple serait mariaDB et WebScaleSQL, qui sont tous les deux nés comme une fourchette croissante du grand système de gestion de bases de données relationnelles MySQL.
À l'heure actuelle, Restangular
having 6699 stars and 727 forks
passe maintenant à Restangular 2.0 qui est censé prendre en charge angularJs 2.0 et ES6.la source
Pour un site Web simple et rapide que vous voulez exécuter pour toujours avec le support minimum, j'utiliserais le http HttpClient angulaire intégré qui que ce soit lorsque je travaille sur un projet que j'aime et que j'apprécie et j'essaie d'utiliser toutes les technologies cool alors J'utiliserai Ngx-Restangular
Vous devez également savoir que ngx-restangular fonctionne avec les services RESTful uniquement comme son nom l'indique. Donc, pour les services qui fournissent SOAP, vous ne pourrez pas utiliser Ngx-Restangular
https://ngx-restangular.com/
Cela étant dit , j'utiliserais ngx-restangular la plupart du temps car j'essaie toujours de travailler sur un projet que je trouve cool et d'essayer de mettre en œuvre ce que je pense être le meilleur.
Bonne chance!
la source