Différence entre HTTP et HTTPClient angulaire 4?
Je veux savoir lequel utiliser pour construire une maquette de service web pour tester l'angle de programme?
- "HttpClient est une évolution de l'existant Angulaire de l'API HTTP, qui existe à côté de lui dans un paquet séparé...".
- J'ai en fait écrit à propos de certains de ses nouvelles fonctionnalités sur mon blog hier: blog.jonrshar.pe/2017/Jul/15/angular-http-client.html
- angulaire.io/guide/http
- Le tutoriel utilise HttpModule et angulaire.io/guide/http utilise HttpClientModule et ni l'explique, lorsque l'un ou l'autre ou de la version Angulaire est nécessaire pour l'utilisation de ce.
Vous devez vous connecter pour publier un commentaire.
Utiliser le
HttpClient
classe deHttpClientModule
si vous utilisez Angulaire 4.3.x et au-dessus:C'est une version améliorée de
http
de@angular/http
module avec les améliorations suivantes:Vous pouvez lire au sujet de la façon dont il fonctionne dans Guide de l'initié dans des intercepteurs et HttpClient mécanique Angulaire.
L'avenir de l'ancien client http sera obsolète. Voici les liens pour le message de commit et les docs officielles.
Aussi faire attention que le vieux http a été injecté à l'aide d'
Http
classe jeton à la place de la nouvelleHttpClient
:Aussi, de nouveaux
HttpClient
semblent exigertslib
dans l'exécution, de sorte que vous devez installernpm i tslib
et mise à joursystem.config.js
si vous utilisezSystemJS
:Et vous avez besoin d'ajouter une autre cartographie si vous utilisez SystemJS:
node_modules
dossier et exécuternpm install
de nouveau'@angular/common/http': 'npm:@angular/common/bundles/common-http.umd.js',
Ne veux pas être répétitif, mais juste pour résumer d'une autre manière:
J'ai écrit un article, où j'ai couvert la différence entre les anciens "http" et les nouveaux "HttpClient". L'objectif était d'expliquer de la manière la plus simple possible.
Simplement sur les nouveaux HttpClient Angulaire
C'est une bonne référence, il m'a aidé à passer mon requêtes http à httpClient
https://blog.hackages.io/angular-http-httpclient-same-but-different-86a50bbcc450
Il compare les deux en termes de différences et donne des exemples de code.
C'est juste quelques différences que j'ai traitées, tandis que l'évolution des services à httpclient dans mon projet (emprunt de l'article que j'ai mentionné) :
Importation
Requérant et l'analyse de la réponse:
@angulaire/http
@angulaire/common/http
Remarque: Vous n'avez plus à extraire les données retournées de façon explicite; par défaut, si les données que vous obtenez en retour est de type JSON, alors vous n'avez pas à faire grand chose de plus.
Mais, si vous avez besoin d'analyser n'importe quel autre type de réponse, comme text ou blob, alors assurez-vous d'ajouter le
responseType
dans la demande. Comme:Faire la requête HTTP GET avec
responseType
option:L'Ajout De L'Intercepteur
J'ai aussi utilisé des intercepteurs pour l'ajout du jeton pour mon autorisation pour toute demande:
C'est une bonne référence:
https://offering.solutions/blog/articles/2017/07/19/angular-2-new-http-interface-with-interceptors/
comme suit:
Ses une jolie mise à niveau!
Il y a une bibliothèque qui vous permet de utilisation HttpClient avec fortement typées rappels.
Les données et l'erreur sont disponibles directement via ces rappels.
Lorsque vous utilisez HttpClient avec Observables, vous devez utiliser .s'abonner(x=>...) dans le reste de votre code.
C'est parce que Observables<
HttpResponse
<T
>> est liée à HttpResponse.Ce étroitement les couples la http couche avec le reste de votre code.
Cette bibliothèque renferme l' .s'abonner(x => ...) partie et n'expose que les données et les erreurs grâce à vos Modèles.
Avec fortement typées rappels, vous n'avez qu'à composer avec vos Modèles dans le reste de votre code.
La bibliothèque est appelée angulaires-extended-http-client.
angulaires-extended-http-bibliothèque client sur GitHub
angulaires-extended-http-bibliothèque client sur NPM
Très facile à utiliser.
Exemple d'utilisation
Fortement typées rappels sont
Succès:
T
>T
>Échec:
TError
>TError
>Ajouter le package de votre projet et dans votre application module
et dans le @NgModule importations
Vos Modèles
Votre Service.
À votre Service, il vous suffit de créer params avec ces types de rappel.
Ensuite, de les transmettre à la HttpClientExt's la méthode get.
Votre Composant
Dans votre Composant, votre Service est injecté et de la getRaceInfo API appelée comme indiqué ci-dessous.
À la fois, réponse et erreur retourné dans les rappels sont fortement typés. Par exemple. réponse est de type RacingResponse et erreur est APIException.
Vous ne vous occupez avec vos Modèles dans ces fortement typées rappels.
Par conséquent, Le reste de votre code qui ne sait à propos de vos Modèles.
Aussi, vous pouvez toujours utiliser la voie traditionnelle et retour Observables<
HttpResponse<
T>
> à partir de l'API de Service.HttpClient est une nouvelle API qui est venu avec la 4.3, il a mis à jour de l'API avec l'appui du progrès des événements, json désérialisation par défaut, Intercepteurs et de nombreuses autres fonctionnalités. Voir plus ici https://angular.io/guide/http
Http est la plus ancienne de l'API et finira par être obsolète.
Puisque leur utilisation est très similaire pour les tâches de base, je vous conseille l'aide HttpClient, car il est le plus moderne et facile à utiliser d'autres.