ngResource
Ya parece muy simple implementar cosas con ...
¿Cuáles son las ventajas / desventajas de usar Restangular sobre ngResource ?
1.1.3 $resource
devolverá promesas y puede ser implementado usando la última confirmación de relaciones públicas . ¿Se ofrecerá soporte futuro $resource
para soportar verbos adicionales que Restangular? Y si eso sucede, Restangular parece que desaparecerá y se volverá irrelevante.
javascript
angularjs
restangular
ngresource
Dan Kanze
fuente
fuente
$http
se realizan cambios importantes en la versión de angularjs --- no podrá actualizar porque las llamadas de servicio de Restangualr esperarán "algo más" y terminará destripando este marco con el que "decidió ir".Respuestas:
Soy el creador de Restangular.
He creado una sección sobre el archivo README con las diferencias con $ resource. Puede consultarlos aquí https://github.com/mgonto/restangular/blob/master/README.md#differences-with-resource
De todos modos, como resumen, además de las características adicionales y el enfoque basado en promesas, la idea es que Restangular también pueda manejar todas sus URL, para que no tenga que saber nada sobre ellas.
Suponga que tiene algo como esto para los automóviles: / users / 123 / cars / 456
En $ resource, tendría que construir esa URL manualmente y también tendría que construir el objeto $ resource para esto manualmente. Restangular te ayuda en esto "recordando" las URL.
Entonces si lo haces en algún lugar
¡Espero que esto ayude!
fuente
.one('users', 123)
más o menos "saber" acerca de su URL que'/users/123'
? (solo jugando al defensor del diablo) Parece que'/foo/123/bar/123'
es mucho más fácil que.one('foo', 123).one('bar', 123)
.var user = Restangular.one('users', 123).getList()
. Más adelante en el código o en algún otro controlador, lo hacesuser.getList('buildings')
. Aquí, solo conoce el siguiente tipo que es edificios, pero consulta/users/123/buildings/
, por lo que no tiene que saber la URL completa todo el tiempo$resource
... No quiero decir que sea irrelevante de ninguna manera, solo que se ha mencionado. ¿Alguna desventaja de hecho o problema que debemos tener en cuenta?Encontré el RequestInterceptor de Restangular bastante útil para eliminar algunos campos del objeto antes de realizar la Solicitud. La mayoría de los servicios web REST con los que estoy trabajando actualmente no esperan la identificación en los datos del objeto en una solicitud PUT, por ejemplo, solo en la url. Por lo general, no esperan campos de datos adicionales que PUT no pueda actualizar (como el id o un slug que se genera al configurar el título, etc.). Descubrí que esto es sencillo con Restangular, aunque no he descubierto cómo hacerlo con $ resource de manera limpia, pero estoy seguro de que es posible de alguna manera.
Obviamente, uno también podría cambiar el servicio web para ignorar esos campos adicionales, pero eso no siempre es posible.
fuente
ngResource no devuelve promesas en la última versión estable (actualmente 1.0.6). Además, parece que Restangular expone más verbos que ngResource (expone PUT, OPTIONS, PATCH, etc.).
Si no necesita verbos adicionales y está en la rama inestable de AngularJS (que incluye promesas para ngResource), no veo ninguna razón importante para usar Restangular sobre ngResource.
Use lo que le resulte más cómodo.
fuente
$resource
devolverá promesas y puede ser implementado usando el último compromiso de relaciones públicas. stackoverflow.com/questions/16429832/… ¿Se ofrecerá soporte futuro$resource
para soportar verbos adicionales? Y si eso sucede, Restangular parece que desaparecerá y se volverá irrelevante.Como seguimiento de las respuestas anteriores y para nuevos lectores, como yo, interesados en esos pensamientos:
En mi opinión, la única garantía para la supervivencia de una biblioteca de código abierto es la comunidad construida a su alrededor. un mejor ejemplo sería mariaDB y WebScaleSQL, que nacieron como una bifurcación creciente del gran sistema de gestión de bases de datos relacionales MySQL.
En este momento de escritura, Restangular
having 6699 stars and 727 forks
ahora está avanzando hacia Restangular 2.0, que está destinado a soportar angularJs 2.0 y ES6.fuente
Para un sitio web simple y rápido que desee ejecutar para siempre con el soporte mínimo, usaría el http HttpClient angular incorporado cuando esté trabajando en un proyecto que amo y estoy disfrutando y tratando de usar todas las tecnologías geniales. voy a usar NGX-restangular
También debe saber que ngx-restangular funciona con servicios RESTful solo como su nombre indica. Por lo tanto, para los servicios que proporcionan SOAP, no podrá usar Ngx-Restangular
https://ngx-restangular.com/
Dicho esto , usaría ngx-restangular la mayor parte del tiempo, ya que siempre trato de trabajar en un proyecto que me parece genial e intento implementar lo que creo que es mejor.
¡La mejor de las suertes!
fuente