What is the advantage of using Restangular over ngResource?

ngResource already seems really simple to implement things with...

What are the Advantages / Disadvantages of using Restangular over ngResource?

1.1.3 $resource will return promises and can be implimented using latest PR commit. Will future support be offered to $resource to support additional verbs that Restangular does? And if that happens Restangular seems like it will disappear and become irrelivant.

39359 次浏览

NgResource 在最新的稳定版本(目前为1.0.6)中不返回承诺。此外,看起来 Restangle 比 ngResource 公开更多的动词(它公开 PUT、 OPTION、 PATCH 等)。

如果您不需要额外的动词,并且处于 AngularJS 的不稳定分支(其中包括对 ngResource 的承诺)中,那么我认为没有任何主要理由使用 Restangle 而不是 ngResource。

用你觉得合适的东西。

我是雷斯塔格的创始人。

我已经创建了一个关于 README 的部分,其中包含了与 $resource 的区别

总而言之,除了额外的特性和基于承诺的方法之外,Restangle 还可以处理所有的 URL,这样您就不必知道任何关于它们的信息。

假设您对汽车有类似的东西:/users/123/car/456

在 $resource 中,必须手动构造 URL,还必须手动构造 $resource 对象。重新定位通过“记住”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')

希望这个能帮上忙!

我发现 Restangle 的 RequestInterceptor 非常方便,可以在发出请求之前从对象中删除一些字段。例如,我目前使用的大多数 REST webservices 都不期望 PUT 请求中的对象数据中有 id,只有 url 中的 id。一般来说,他们不会期望额外的数据字段不能被 PUT 更新(比如 id,或者通过设置 title 等生成的 slug)。我发现这是直截了当的与 Restangle,而我还没有找到如何做到这一点与 $resource 在一个干净的方式,但我肯定它是可能的。

显然,人们也可以改变 webservice,只是忽略这些额外的字段,但这并不总是可能的。

作为上述答案的后续,对于像我这样对这些想法感兴趣的 新的读者来说:

“如果这种情况发生,雷斯塔格尔似乎将消失,变得无关紧要。”

”如果三个月后这家伙不再支持 重新定位是因为谷歌的 ngResource 已经完成了所有的功能 它不见了。”

  • [ 两年前问过]

在我看来,只有开源库生存的保证是围绕它建立的社区。一个最好的例子就是 MariaDBWebScaleSQL,它们都是作为伟大的关联式资料库管理系统 MySQL 的一个分支诞生的。

在写这篇文章的时候,Restangarhaving 6699 stars and 727 forks正在向 RestangarJs 2.0和 ES6支持的 RestangarJs 2.0发展。

对于快速简单的网站,你想运行永远与最低限度的支持,我会使用内置的角度无论是谁,当我在一个项目,我喜欢的工作,我很享受,并试图使用所有酷的技术,然后我将使用 重新定位

您还应该知道,ngx-restangle 只能使用 RESTful 服务的名称。因此,对于提供 SOAP 的服务,您将不能使用 重新定位

Https://ngx-restangular.com/

这就是说 大多数时候我会使用 ngx 重置,因为我总是试图在我觉得很酷的项目上工作,并试图实施我认为是最好的。

祝你好运!