ngResource
уже кажется действительно простым для реализации вещей с ...
Каковы преимущества / недостатки использования Restangular по сравнению с ngResource ?
1.1.3 $resource
будет возвращать обещания и может быть реализовано с использованием последнего PR-коммита . Будет ли предложена поддержка в будущем $resource
для поддержки дополнительных глаголов, которые делает Restangular? И если это произойдет, то Restangular кажется, что оно исчезнет и станет неактуальным.
javascript
angularjs
restangular
ngresource
Дэн Канзе
источник
источник
$http
в angularjs будут внесены существенные изменения - вы не сможете выполнить обновление, потому что вызовы службы Restangualr будут ожидать «чего-то другого», и вы в конечном итоге будете потрошить эту платформу, с которой «решили пойти».Ответы:
Я создатель 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-адреса.
Так что если вы делаете в каком-то месте
Надеюсь это поможет!
источник
.one('users', 123)
более или менее "знать" о вашем URL, чем'/users/123'
? (просто играет адвоката Дьявола) Кажется,'/foo/123/bar/123'
это намного проще, чем.one('foo', 123).one('bar', 123)
.var user = Restangular.one('users', 123).getList()
. Позже в коде или в другом контроллере вы делаетеuser.getList('buildings')
. Здесь вы просто знаете следующий тип, который представляет собой здания, но он запрашивает/users/123/buildings/
, поэтому вам не нужно знать полный URL-адрес все время$resource
- я не имею в виду, что это станет неактуальным каким-либо образом, просто это было упомянуто. Какие-нибудь фактические недостатки или ошибки, о которых мы должны знать?Я обнаружил, что Restign RequestInterceptor весьма удобен для удаления некоторых полей из объекта перед выполнением запроса. Большинство веб-сервисов REST, с которыми я сейчас работаю, не ожидают идентификатор в данных объекта в запросе PUT, например, только в URL. Как правило, они не ожидают дополнительных полей данных, которые не могут быть обновлены PUT (например, идентификатор или слаг, который создается путем установки заголовка и т. Д.). Я обнаружил, что это просто с Restangular, хотя я не понял, как сделать это с помощью $ resource, но я уверен, что это возможно как-то.
Очевидно, можно также изменить веб-сервис, чтобы просто игнорировать эти дополнительные поля, но это не всегда возможно.
источник
ngResource не возвращает обещания в последней стабильной версии (в настоящее время 1.0.6). Кроме того, похоже, что Restangular выставляет больше глаголов, чем ngResource (оно выставляет PUT, OPTIONS, PATCH и т. Д.).
Если вам не нужны дополнительные глаголы и они находятся в нестабильной ветке AngularJS (которая включает в себя обещания для ngResource), я не вижу какой-либо серьезной причины использовать Restangular над ngResource.
Используйте то, что вам удобно.
источник
$resource
будет возвращать обещания и может быть реализовано с использованием последнего PR-коммита. stackoverflow.com/questions/16429832/… Будет ли предложена будущая поддержка для$resource
поддержки дополнительных глаголов? И если это произойдет, то Restangular кажется, что оно исчезнет и станет неактуальным.В качестве ответа на приведенные выше ответы и для новых читателей, таких как я, интересующихся этими мыслями:
По моему мнению, единственной гарантией выживания библиотеки с открытым исходным кодом является сообщество, построенное вокруг нее. лучшим примером будет mariaDB и WebScaleSQL, которые оба были рождены как растущая ветвь великолепной системы управления реляционными базами данных MySQL.
В это время записи Restangular
having 6699 stars and 727 forks
теперь продвигается к Restangular 2.0, которое предназначено для поддержки angularJs 2.0 и ES6.источник
Для быстрого простого веб-сайта, который вы хотите запустить навсегда при минимальной поддержке, я бы использовал встроенный угловой http HttpClient, кто бы ни работал, когда я работаю над проектом, который мне нравится, и я наслаждаюсь и пытаюсь использовать все классные технологии, тогда Я буду использовать Ngx-Restangular
Также вы должны знать, что ngx-restangular работает с сервисами RESTful только в соответствии с его именем. Поэтому для сервисов, которые предоставляют SOAP, вы не сможете использовать Ngx-Restangular.
https://ngx-restangular.com/
При этом я буду использовать ngx-restangular большую часть времени, так как я всегда стараюсь работать над проектом, который я нахожу классным, и пытаюсь реализовать то, что я считаю лучшим.
Удачи!
источник