Retour au blog

Gestion des requêtes HTTP et du traitement des erreurs avec les intercepteurs Angular

Gestion des requêtes HTTP et du traitement des erreurs avec les intercepteurs Angular

Si vous avez développé une application en utilisant AngularJS, vous connaissez probablement les intercepteurs HTTP. Cependant, ces intercepteurs HTTP n'étaient pas disponibles dans Angular avant la version 4.3. Dans ce tutoriel, nous utiliserons des intercepteurs dans Angular pour gérer les requêtes et réponses HTTP, et traiter les erreurs.

Prérequis

Angular utilisent le runtime Node.js. Pour suivre ce tutoriel, vous devrez avoir installé Node.js sur votre machine. Heureusement, Node.js est assez facile à installer. Nous avons un guide complet sur Comment installer Node.js sur Ubuntu 18.04 ici.

De plus, il vous sera utile de connaître Angular et d'être familiarisé avec l'utilisation de Angular CLI pour créer des applications Angular. Nous utiliserons Node v8.12.0 et npm v6.4.1.

Étape 1 : Créer l'application Angular

Pour commencer, créons une nouvelle application Angular à l'aide d'Angular CLI. Nous nommerons notre application Angular-Interceptor. Exécutez la commande ci-dessous pour créer l'application :

Plusieurs choix vous seront proposés. Saisissez les valeurs par défaut et continuez :

ang cli Angular Interceptors

Ensuite, accédez au répertoire de l'application et exécutez la commande ci-dessous pour démarrer l'application :

ng serve Angular Interceptors

Ensuite, ouvrez http://localhost:4200 dans votre navigateur pour voir l'application. Vous avez maintenant configuré une application Angular de base.

Étape 2 : Styliser l'application Angular

Ici, nous allons styliser notre application Angular en utilisant Angular Material. Pour installer Angular Material dans votre projet, exécutez la commande ci-dessous :

Cela installera @angular/material, @angular/cdk, et @angular/animation dans votre projet. Ensuite, nous allons configurer une animation dans le projet. Ajoutez BrowserAnimationsModule dans votre fichier src/app/module.ts :

Nous utiliserons le composant Dialog d'Angular Material. Pour utiliser le composant Dialog, nous devons importer MatDialogModule dans le fichier src/app/app.module.ts :

Pour rendre l'interface utilisateur plus attrayante, ajoutons indigo-pink.css à votre fichier styles.scss :

Étape 3 : Créer votre intercepteur Angular

Sous le dossier app, nous allons créer un nouveau dossier appelé interceptor. À l'intérieur de ce dossier nouvellement créé, créez un nouveau fichier httpconfig.interceptor.ts .

Nous devons importer certaines dépendances dans notre fichier httpconfig.interceptor.ts pour faire fonctionner notre intercepteur. Ces dépendances sont HttpInterceptor, HttpRequest, HttpResponse, et HttpHandler, HttpEvent, HttpErrorResponse.

Notre fichier httpconfig.interceptor.ts ressemblera à ceci après l'importation :

Ensuite, créez une classe HttpConfigInterceptor et implémentez l'interface HttpInterceptor. Voici un exemple :

Ajoutez le code ci-dessous au fichier httpconfig.interceptor.ts :

Pour que cela fonctionne, nous devons importer httpconfig.interceptor.ts dans notre fichier app.module.ts :

Ajoutez HttpConfigInterceptor à providers. Nous allons définir multi: true pour gérer plusieurs intercepteurs :

Dans la section suivante, nous allons créer notre service pour gérer les erreurs.

Étape 4 : Service de gestion des erreurs

Ici, nous allons écrire le code pour gérer les erreurs. Nous devrons capturer les erreurs et les afficher de manière appropriée aux utilisateurs finaux. En résumé, voici les étapes que nous allons suivre :

  1. Créez un dossier nommé error-dialog dans le dossier app .
  2. Créez un service pour les erreurs nommé errorDialogService dans un fichier nommé errordialog.service.ts.
  3. Ajoutez le code ci-dessous dans le fichier errordialog.service.ts :
Après cela, créez un nouveau fichier appelé errordialog.component.ts. Dans ce fichier, ajoutez le code ci-dessous :
Enfin, nous devons créer un fichier HTML, errordialog.component.html, pour le template :
Nous devons revisiter le fichier httpconfig.interceptor.ts pour y apporter quelques modifications. Ces modifications nous permettront d'intercepter les erreurs.

Pour résumer, listons les étapes ci-dessous :

  1. Commencez par importer errordialog.service.
  2. Ensuite, nous ajouterons le constructeur pour errorDialogService.
  3. Nous ajouterons également le code pour gérer la réponse d'erreur en utilisant catchError et throwError.
  4. Importez errordialog.service et errordialog.component dans le AppModule.

Après avoir effectué les modifications, deux fichiers seront modifiés : app.module.ts et httpconfig.interceptor.ts:

Étape 5 : Création de services d'exemple

Dans cette étape, nous allons créer deux services à titre d'exemple :

  1. API de connexion
  2. API de détails client

Créez un nouveau dossier nommé services dans le dossier src . Ensuite, à l'intérieur de ce dossier nouvellement créé, créez un nouveau fichier nommé login.service.ts, et ajoutez deux fonctions :

Étape 6 : Appel du service client HTTP

Enfin, nous arrivons à la dernière partie de notre tutoriel. Nous allons appeler notre service HTTP depuis le fichier app.component.ts . Ajoutez les deux LoginService fonctions à app.component.ts. Appelez l'API de connexion au chargement (onload) et l'API customers/details avec onclick:

Maintenant, nous devons ajouter un élément d'interface utilisateur dans app.component.html, afin que l'utilisateur puisse cliquer dessus :

Pour terminer, vous devrez inclure le LoginService dans les providers de AppModule:

Ci-dessous, voici une capture d'écran de la boîte de dialogue du gestionnaire d'erreurs :

error

Conclusion

Dans ce tutoriel, nous avons appris à gérer les requêtes et les réponses HTTP à l'aide des intercepteurs Angular. Nous avons également appris à gérer les erreurs à l'aide d'une boîte de dialogue dans Angular Material.

Les applications Angular utilisent Node.js comme environnement d'exécution. Si vous souhaitez en savoir plus sur Node.js et sur la manière de déployer des applications Node.js avec Docker, consultez notre Comment déployer une application Node.js (Express.js) avec Docker sur Ubuntu 20.04 guide. Vous pouvez également consulter Comment effectuer des tâches de production sur Ubuntu 20.04 avec Node.js et Installer Node.js sur CentOS 8 : un guide complet.

Bon développement !

author

Pranay Kapgate

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.