$http
जिसमें सामान्य मतलब है कि यह RESTful एपीआई प्लस गैर RESTful एपीआई शामिल कर सकते हैं सामान्य प्रयोजन AJAX कॉल बनाता है।
और $resource
उस RESTful भाग के लिए विशिष्ट है।
हाल ही के वर्षों में आराम से एपी प्रचलित आया क्योंकि प्रोग्रामर द्वारा बनाए गए यादृच्छिक यूआरएल के बजाय यूआरएल बेहतर संगठित है।
यदि मैं url बनाने के लिए RESTful API का उपयोग करता हूं, तो यह /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');
}]);
यह आपको एक resource object, जो 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...
}
लाने के लिए देखें कि किस प्रकार हम शोकहारा एपीआई पर प्रत्येक आम आपरेशन को परिभाषित करने की जरूरत है। इसके अलावा एक अंतर यह है कि $http
रिटर्न promise
जबकि $resource
रिटर्न एक वस्तु। वहाँ भी तरह restangular
शोकहारा एपीआई साथ कोणीय सौदा मदद करने के लिए एपीआई /api/getcarsinfo
की तरह कुछ है, तो प्लग-इन कर रहे हैं। हमारे लिए छोड़ा गया सभी $http
का उपयोग करना है।
$ संसाधन $ http के शीर्ष पर बनाया गया है, और अंतर्निहित संचार से आगे अमूर्तता प्रदान करता है। इसके लिए एक आरईएसटी एंड-पॉइंट भी आवश्यक है जो $ संसाधन पैटर्न के अनुरूप है। चूंकि आप पूछ रहे हैं, मेरा सुझाव है कि $ http से शुरू करें, परिचित हो जाएं, और फिर बाद में देखें कि क्या आप $ संसाधन में स्थानांतरित कर सकते हैं। –
उत्तर के लिए धन्यवाद। तो, किस स्थिति में $ http ने $ संसाधन से अधिक पसंद किया है, इसके अलावा मैं एपीआई से परिचित हो सकता हूं? – Tom