我正在开发第一个使用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
我可能会看到这个错误,但感谢任何指导
答案 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文件注入工厂/服务/等之前,您必须包含它。