$http
sprawia ogólnego zastosowania AJAX rozmowę, w której ogólny środek może zawierać REST API plusa dla REST API.
i $resource
specjalizuje się w tej części RESTful .
Restful Api zaczęło dominować w ostatnich latach, ponieważ adres URL jest lepiej zorganizowany zamiast losowego adresu utworzonego przez programistów.
Jeśli użyję interfejsu API RESTful do skonstruowania adresu URL, byłoby to coś w rodzaju /api/cars/:carId
.
$resource
sposób na pobranie danych
angular.module('myApp', ['ngResource'])
// Service
.factory('FooService', ['$resource', function($resource) {
return $resource('/api/cars/:carId')
}]);
// Controller
.controller('MainController', ['FooService', function(FooService){
var self = this;
self.cars = FooService.query();
self.myCar = FooService.get('123');
}]);
To daje obiekt zasobu , który towarzyszy get
, save
, query
, remove
, delete
automatycznie metod.
$http
sposób na pobranie danych
angular.module('myApp', [])
// Service
.factory('FooService', ['$http', function($http){
return {
query: function(){
return $http.get('/api/cars');
},
get: function(){
return $http.get('/api/cars/123');
}
// etc...
}
Zobacz, jak musimy zdefiniować każdą wspólną operację w interfejsie API RESTFul . Jedną z różnic jest to, że $http
zwraca, promise
gdy $resource
zwraca obiekt. Istnieją również wtyczki innych firm, które pomagają Angularowi radzić sobie z RESTFul API, np. W wersji prostokątnej
Jeśli interfejs API jest podobny /api/getcarsinfo
. Pozostało nam tylko skorzystać $http
.