我应该使用很多服务在angularjs应用程序中调用rest api吗?

时间:2015-03-19 16:54:31

标签: angularjs rest angular-services

我正在开发第一个使用rest api的angularjs应用程序。我知道我可以使用服务来调用其余的api。

我们说我有一个叫做极致的api。在极致我可以返回用户列表和活动列表。

我应该创建一个服务文件,让我们说acmeService.js,它返回用户列表和活动列表以及任何crud活动吗?

例如:

  this.getUsers = function(url){
    if (!url) {
      url = BASE_URL + '/users';
    }

    return $http.get(url);
  };
  // Code for User CRUD

  this.getActivities = function(url){
    if (!url) {
      url = BASE_URL + '/activities';
    }

    return $http.get(url);
  };
  // Code for Activity CRUD

或者我应该为每个实体创建一个服务文件及其Crud操作吗?

例如:

userAcmeService.js

this.getUsers = function(url){
      if (!url) {
        url = BASE_URL + '/users';
      }

      return $http.get(url);
};
// Code for CRUD

activityAcmeService.js

this.getActivities = function(url){
      if (!url) {
         url = BASE_URL + '/activities';
      }

      return $http.get(url);
 };
 // Code for CRUD

我可能会看到这个错误,但感谢任何指导

1 个答案:

答案 0 :(得分:1)

你可以诚实地做任何一种方式,我认为这完全取决于你!你可以只有一个大的服务对象,里面分开2个。

此外,如果您在REST API中有CRUD操作,为什么不尝试使用$resource?它会为你创造所有的方法! get / save / query / remove / delete

<强> $resource

如示例所示:

app.factory("Post", function($resource) {
    return $resource("/api/posts/:id");
});

app.controller("PostIndexCtrl", function($scope, Post) {

    // This would "get all"
    Post.query(function( data ) {
        $scope.posts = data;
    });

});

https://docs.angularjs.org/api/ngResource/service/ $资源

  

注意:在将angular-resource.js文件注入工厂/服务/等之前,您必须包含它。