В чем преимущество использования Restangular над ngResource?
ngResource
уже кажется очень простой для реализации вещи...
каковы преимущества / недостатки использования Restangular over ngResource?
1.1.3 $resource
вернет обещания и может быть реализовано с помощью последний PR commit. Будет ли предложена будущая поддержка $resource
для поддержки дополнительных глаголов, которые Restangular делает? А если что происходит Restangular кажется, что он исчезнет и станет irrelivant.
5 ответов:
Я создатель 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')
надеюсь, что это помогает!
Я нашел RequestInterceptor Restangular довольно удобным для удаления некоторых полей из объекта перед выполнением запроса. Большинство веб-сервисов REST, с которыми я сейчас работаю, не ожидают идентификатора в данных объекта в запросе PUT, например, только в url. Как правило, они не ожидают дополнительных полей данных, которые не могут быть обновлены с помощью PUT (например, id или slug, который генерируется путем установки заголовка и т. д.). Я обнаружил, что это просто с Restangular, пока я не понял, как это сделать сделайте это с $ resource чистым способом, но я уверен, что это возможно как-то.
очевидно, что можно также изменить веб-сервиса, чтобы просто игнорировать эти дополнительные поля, но это не всегда возможно.
ngResource не возвращает обещания в последнем стабильном выпуске (в настоящее время 1.0.6). Кроме того, похоже, что Restangular предоставляет больше глаголов, чем ngResource (он предоставляет PUT, OPTIONS, PATCH и т. д.).
Если вам не нужны дополнительные глаголы и находятся на нестабильной ветви AngularJS (которая включает обещания для ngResource), я не вижу никаких серьезных причин использовать Restangular над ngResource.
используйте все, что вам удобно.
в соответствии с приведенными выше ответами и для новая читателей, как и меня, интересуют эти мысли:
"и если это произойдет Restangular кажется, что он исчезнет и станет irrelivant."
для быстрого простого сайта, который вы хотите запустить навсегда с минимальной поддержкой я бы использовал встроенный угловой http HttpClient кто бы ни работал над проектом, который мне нравится, и я наслаждаюсь и пытаюсь использовать все классные технологии, тогда я буду использовать Ngx-Restangular
также вы должны знать, что ngx-restangular работает с RESTful services только так, как подсказывает название. Так что для услуг, которые предоставляют мыло вы не сможете использовать Ngx-Restangular
Как говорится Я хотел бы использовать фабриката необходмо предусмотреть-restangular самое время Как я всегда стараюсь работать над проектом, который я нахожу классным и пытаюсь реализовать то, что я считаю лучшим.
удачи!