我是否应该使用许多服务在 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
如示例所示:
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
我正在开发我的第一个 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
如示例所示:
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