我是否应该使用许多服务在 angularjs 应用程序中调用 rest api?

Should I use many services to call a rest api in an angularjs app?

我正在开发我的第一个 angularjs 应用程序,需要休息 api。我知道我可以使用服务来调用其余部分 api。

假设我有一个 api 叫做 acme。在 acme 中,我可以 return 用户列表和活动列表。

我是否应该创建一个服务文件,比方说 acmeService.js,return 用户列表和活动列表以及任何 crud activity?

例如:

  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

我可能看错了,但欢迎任何指导

老实说,您可以选择任何一种方式,我认为这完全取决于您!您可以只拥有一个大服务对象,其中 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/$resource

Note: You have to include the angular-resource.js file before injecting it into a factory/service/etc