261 votes

AngularJS $http et $resource

Je suis nouvellement exposés à AngularJS, donc veuillez pardonner mon ignorance.

J'ai quelques services web que je souhaite appeler. $resource ou $http, lequel dois-je utiliser?

$resource: https://docs.angularjs.org/api/ngResource/service/$ressource

$http: https://docs.angularjs.org/api/ng/service/$http

Après j'ai lu les deux pages API je suis perdu.

Pourriez-vous svp m'expliquer, dans un anglais simple quelle est la différence et dans quelles situations doit-je les utiliser? Comment la structure de ces appels et de lire les résultats dans des objets js correctement?

212voto

Hallucynogenyc Points 2585

Je sens que d'autres réponses, bien que correcte, n'est pas tout à fait expliquer la racine de la question: REST est un sous-ensemble de l' HTTP. Cela signifie que tout ce qui peut être fait par le biais REST peut être fait par le biais HTTP mais pas tout ce qui peut être fait par le biais HTTP peut être fait par le biais REST. C'est pourquoi, $resource utilise $http en interne.

Donc, quand les utiliser les uns les autres?

Si vous avez besoin d' REST, qui est, vous essayez d'accéder à une RESTful webservice, $resource va faire super facile d'interagir avec le service web.

Si au lieu de cela, vous essayez d'accéder à TOUT ce qui n'est pas un RESTful webservice, vous allez avoir à aller avec $http. Gardez à l'esprit, vous pouvez également accéder à un RESTful webservice via $http,, il va juste être beaucoup plus lourd qu'avec $resource. C'est la façon dont la plupart des gens qui ont été faites à l'extérieur AngularJS, en utilisant jQuery.ajax (l'équivalent de l'Angulaire de l' $http).

172voto

Ben Lesh Points 39290

$http est pour les fins générales de l'AJAX. Dans la plupart des cas, c'est ce que vous allez utiliser. Avec $http , vous allez faire de GET, POST, DELETE type manuellement aux appels et le traitement des objets de leur retour sur votre propre.

$resource enveloppements $http pour une utilisation dans le web RESTful API scénarios.


En général: Un service web RESTful sera un service avec un point de terminaison d'un type de données qui n'différentes choses avec ce type de données basé sur les méthodes HTTP, comme GET, POST, PUT, DELETE, etc. Donc, avec un $resource, vous pouvez faire appel à un GET pour accéder à la ressource comme un objet JavaScript, puis le modifier et le renvoyer avec un POST, ou même de le supprimer avec DELETE.

... si cela fait sens.

24voto

sparrkli Points 103

Je pense qu’il est important de souligner que $resource attend objet ou un tableau comme réponse du serveur, chaîne pas cru. Donc si vous avez la chaîne brute (ou n’importe quoi excepté l’objet et tableau) comme une réponse, vous devez utiliser $http

7voto

Dalorzo Points 6449

Quand il s'agit de choisir entre $http ou $resource , techniquement parlant, il n'y a pas de bonne ou de mauvaise réponse, en substance, les deux vont faire la même chose.

Le but de l' $resource est de vous permettre de passer d'un modèle de chaîne de caractères (une chaîne de caractères qui contient des espaces réservés) ainsi que les valeurs de ces paramètres. $resource permettra de remplacer les espaces réservés à partir de la chaîne de modèle avec les valeurs de paramètre ceux étant passé comme un objet. C'est surtout utile lors de l'interaction avec RESTFul source de données qu'ils utilisent les mêmes principes pour définir l'Url.

Ce $http n'est à effectuer Asynchrone des Requêtes HTTP.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X