在 API - $http 或 $resource 上仅使用 GET 请求

Using GET only requests on API - $http or $resource

如果我所做的只是从 API 发出基本的 GET 请求(不是完整的 CRUD),那么使用 $http 还是 $resource 更好?

我看到 $resource 在后台使用 $http 那么这是否有点过分了?使用 $resource 比 $http 编写的代码更精简,尤其是当我添加额外的 GET 请求时。下面是我使用两者的示例。试图确定哪个更好地向前推进。我读到的一切似乎都指向两个方向。是否有一个普遍接受的共识?

$资源

/* Data Factory */
myApp.factory('myServ', ['$resource', '$cacheFactory',
 function($resource) {
  return {
    Events: $resource('api/v1/events/:slug', {}, {slug: '@slug', cache: true, method: 'get'})
  };
}]);

$http:

/* Data Factory */
angular.module('myFactory', [])
    .factory('eventRepo', function($http) {
        return {
            Events: function(callback) {
                $http({
                    method: 'GET',
                    url: 'api/v1/events',
                    cache: true
                }).success(callback);
            }
        };
    });

没有总体共识,简短的答案取决于您的需要.....

我发现随着我们的 AngularJs 应用程序的增长,服务消费变得更加复杂。一种可扩展且灵活的可重用方法始终是一个很好的经验法则。对服务架构的良好投资对使应用程序更易于实施、维护和单元测试大有帮助。我建议您查看 John Papa 的服务实施风格指南。

https://github.com/johnpapa/angular-styleguide


http://sauceio.com/index.php/2014/07/angularjs-data-models-http-vs-resource-vs-restangular/

$http 内置于 Angular 中,因此不需要在外部依赖项中加载额外的开销。 $http 适用于快速检索不需要任何特定结构或复杂行为的服务器端数据。为简单起见,最好将它直接注入到您的控制器中。

$resouce 适用于比 $http 稍微复杂的情况。当您拥有非常结构化的数据时这很好,但您计划在交付 API 响应之前在服务器端执行大部分处理、关系和其他操作。客户端的任何自定义行为都需要大量样板文件。