$http
робить виклик AJAX загального призначення, в якому загальні засоби можуть включати RESTful api плюс не-RESTful api.
і $resource
спеціалізується на цій ВІДПОВІДНІЙ частині.
Спокійний Апі в останні роки переважає, оскільки URL краще організований замість випадкової URL-адреси, складеної програмістами.
Якщо я буду використовувати API RESTful для побудови 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...
}
Подивіться, як нам потрібно визначити кожну спільну операцію в API RESTFul . Також одна відмінність полягає в тому, що $http
повертає promise
при $resource
поверненні об'єкт. Існують також сторонні плагіни, які допомагають Angular розбиратися з API RESTFul, як-от перезапуск
Якщо API щось подібне /api/getcarsinfo
. Залишилося нам скористатися $http
.