ngResource
já parece realmente simples de implementar coisas com ...
Quais são as vantagens / desvantagens do uso do Restangular sobre o ngResource ?
1.1.3 $resource
retornará promessas e pode ser implementado usando o mais recente commit de PR . Será oferecido suporte futuro $resource
para apoiar verbos adicionais que o Restangular faz? E se isso acontecer, Restangular parece que desaparecerá e se tornará irrelivante.
javascript
angularjs
restangular
ngresource
Dan Kanze
fonte
fonte
$http
alterações de versão forem feitas no angularjs --- você não poderá atualizar porque as chamadas de serviço do Restangualr estarão esperando "outra coisa" e você acabará estripando essa estrutura que "decidiu seguir".Respostas:
Eu sou o criador do Restangular.
Eu criei uma seção no README com as diferenças contra o recurso $. Você pode vê-los aqui https://github.com/mgonto/restangular/blob/master/README.md#differences-with-resource
De qualquer forma, em resumo, além dos recursos adicionais e da abordagem baseada em promessas, a idéia é que o Restangular também possa manipular todos os seus URLs, para que você não precise saber nada sobre eles.
Suponha que você tenha algo parecido com isto para carros: / users / 123 / cars / 456
Em $ resource, você precisaria construir esse URL manualmente e também o objeto $ resource para isso manualmente. Restangular ajuda você a "lembrar" os URLs.
Então, se você faz em algum lugar
Espero que isto ajude!
fonte
.one('users', 123)
mais ou menos "conhecedor" do seu URL'/users/123'
? (apenas brincando de advogado do diabo) Parece que'/foo/123/bar/123'
é muito mais fácil do que isso.one('foo', 123).one('bar', 123)
.var user = Restangular.one('users', 123).getList()
. Posteriormente no código ou em algum outro controlador, você fazuser.getList('buildings')
. Aqui, você só sabe o próximo tipo que é edifícios, mas ele consulta/users/123/buildings/
, para que você não tem que saber a URL completa de todos os tempos$resource
- não sugiro que se torne irrelevante por qualquer meio, apenas que foi mencionado. Quaisquer desvantagens factuais ou truques que devemos estar cientes?Achei o RequestInterceptor do Restangular bastante útil para remover alguns campos do objeto antes de fazer a solicitação. A maioria dos serviços web REST com os quais estou trabalhando não espera o ID nos dados do objeto em uma solicitação PUT, por exemplo, apenas no URL. Geralmente eles não esperam campos de dados extras que não possam ser atualizados por PUT (como o ID ou uma lesma que é gerada pela configuração do título etc.). Eu achei isso simples com Restangular, enquanto eu ainda não descobri como fazê-lo com $ resource de uma maneira limpa, mas tenho certeza que é possível de alguma forma.
Obviamente, também é possível alterar o serviço da web para ignorar esses campos extras, mas isso nem sempre é possível.
fonte
O ngResource não retorna promessas na versão estável mais recente (atualmente 1.0.6). Além disso, parece que Restangular expõe mais verbos que ngResource (expõe PUT, OPTIONS, PATCH, etc).
Se você não precisa dos verbos adicionais e está no ramo instável do AngularJS (que inclui promessas para o ngResource), não vejo nenhum motivo importante para usar o Restangular sobre o ngResource.
Use o que você se sentir confortável.
fonte
$resource
retornará promessas e pode ser implementado usando o mais recente commit de PR. stackoverflow.com/questions/16429832/… Será oferecido suporte futuro para$resource
dar suporte a verbos adicionais? E se isso acontecer, Restangular parece que desaparecerá e se tornará irrelivante.Como acompanhamento das respostas acima e para novos leitores, como eu, interessados nesses pensamentos:
Na minha opinião, a única garantia de sobrevivência de uma biblioteca de código aberto é a comunidade construída em torno dela. um melhor exemplo seria o mariaDB e o WebScaleSQL, que nasceram como uma bifurcação crescente do excelente sistema de gerenciamento de banco de dados relacional MySQL.
No momento da redação, o Restangular
having 6699 stars and 727 forks
agora está avançando para o Restangular 2.0, que deve suportar angularJs 2.0 e ES6.fonte
Para um site simples e rápido que você deseja executar para sempre com o suporte mínimo, eu usaria o http HttpClient angular embutido, seja quem for quando estiver trabalhando em um projeto que adoro e que esteja gostando e tentando usar todas as tecnologias interessantes Vou usar Ngx-Restangular
Além disso, você deve saber que o ngx-restangular funciona apenas com serviços RESTful, como o nome sugere. Portanto, para serviços que fornecem SOAP, você não poderá usar o Ngx-Restangular
https://ngx-restangular.com/
Dito isto, eu usaria ngx-restangular na maioria das vezes, pois sempre tento trabalhar no projeto que acho interessante e tentar implementar o que acho melhor.
Boa sorte!
fonte