$httpführt einen Allzweck-AJAX-Aufruf durch, wobei allgemein bedeutet, dass er RESTful- API und Non-RESTful- API enthalten kann.
und $resourceist auf diesen RESTful- Teil spezialisiert.
Restful Api hat sich in den letzten Jahren durchgesetzt, weil die URL besser organisiert ist als die zufällige URL, die von Programmierern erstellt wurde.
Wenn ich eine RESTful-API verwende , um die URL zu erstellen, wäre das ungefähr so /api/cars/:carId.
$resource Weg, um Daten abzurufen
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');
}]);
Dies wird Ihnen ein Ressourcenobjekt , das mit einhergeht get, save, query, remove, deleteautomatisch Methoden.
$http Weg, um Daten abzurufen
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...
}
Sehen Sie, wie wir jede allgemeine Operation in der RESTFul-API definieren müssen . Auch ein Unterschied ist , dass die $httpRenditen , promisewährend $resourceein Objekt zurückgegeben. Es gibt auch Drittanbieter - Plug - ins Eckige Deal mit helfen RESTful API wie restangular
Wenn die API so etwas wie ist /api/getcarsinfo. Alles was für uns übrig bleibt ist zu benutzen $http.