В чем преимущество использования Restangular над ngResource?


ngResource уже кажется очень простой для реализации вещи...

каковы преимущества / недостатки использования Restangular over ngResource?

1.1.3 $resource вернет обещания и может быть реализовано с помощью последний PR commit. Будет ли предложена будущая поддержка $resource для поддержки дополнительных глаголов, которые Restangular делает? А если что происходит Restangular кажется, что он исчезнет и станет irrelivant.

5 132

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

https://ngx-restangular.com/

Как говорится Я хотел бы использовать фабриката необходмо предусмотреть-restangular самое время Как я всегда стараюсь работать над проектом, который я нахожу классным и пытаюсь реализовать то, что я считаю лучшим.

удачи!