I would like to call the following api routes
/api/user/:id
/api/user/inbox
/api/user/blah
Would all of these be defined in one angular service? And how would I do that? every tutorial I've looked at has a service where it immediately returns the resource and it's usually for CRUD operations too. I'd most likely be calling these routes in multiple controllers so I think having it in one service is beneficial. Could someone show an example of how I would create a service to call these routes?
I'd like to do operations like this in other controllers
$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
where $api is the service I would define and getuserInbox() is a function which makes an http request for /api/user/inbox
AngularJS's $resource service is easier to use than $http for interacting with data sources exposed as RESTful resources.
Yes, putting all RESTfull API calls into a service is ideal. Benefits include:
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 - If you are consuming a true RESTfull API, I suggest you consider Restangular.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With