我想打电话给以下api路线
/api/user/:id
/api/user/inbox
/api/user/blah
所有这些都是在一个角度服务中定义的吗?那我该怎么办?我所看过的每个教程都有一个服务,它会立即返回资源,而且通常也用于CRUD操作。我很可能在多个控制器中调用这些路由,所以我认为在一个服务中使用它是有益的。有人可以举例说明如何创建一个服务来调用这些路由吗?
我想在其他控制器中执行此类操作
$scope.inbox = $api.getUserInbox() //function which requests api/user/inbox
$scope.user = $api.getUser() //function which requests api/user/:id
$scope.blah = $api.getUserBlah() //function which requests api/user/blah
其中$ api是我要定义的服务,getuserInbox()是一个为/ api / user / inbox发出http请求的函数
答案 0 :(得分:5)
是的,将所有RESTfull API调用放入服务中是理想的选择。好处包括:
app.service('userAPI', function($http) {
var self = this;
var baseUrl = "api/user/";
self.getUser(id) {
return $http.get(baseUrl + id);
}
});
app.controller('myController', function($scope, userAPI) {
userAPI.getUser(1).then(function(response) {
$scope.user = response.data;
};
}
PS - 如果您使用的是真正的RESTfull API,建议您考虑使用Restangular。