$http
делает общего назначения AJAX вызова, в котором вообще означает , что он может включать в себя RESTful API плюс Non-успокоительный API.
и $resource
специализируется на этой части RESTful .
Restful Api стал распространенным в последние годы, потому что URL лучше организован, а не случайный URL, составленный программистами.
Если бы я использовал RESTful API для создания URL, это было бы что-то вроде /api/cars/:carId
.
$resource
способ получения данных
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');
}]);
Это даст вам объект ресурса , который сопровождается с get
, save
, query
, remove
, delete
методами автоматически.
$http
способ получения данных
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...
}
Посмотрите, как нам нужно определить каждую общую операцию в RESTFul API . Также одним отличием является то, что $http
возвращает promise
время $resource
возвращает объект. Существуют также сторонние плагины, помогающие Angular справляться с RESTFul API, такие как restangular
Если API это что-то вроде /api/getcarsinfo
. Все что нам осталось это использовать $http
.