Zurück zum Blog

Verwalten von HTTP-Anfragen und Fehlerbehandlung mit Angular Interceptors

Verwalten von HTTP-Anfragen und Fehlerbehandlung mit Angular Interceptors

Wenn Sie eine Anwendung mit AngularJS entwickelt haben, sind Ihnen HTTP-Interceptoren wahrscheinlich bekannt. Diese HTTP-Interceptoren waren in Angular jedoch erst ab Version 4.3 verfügbar. In diesem Tutorial werden wir Interceptoren in Angular verwenden, um HTTP-Anfragen und -Antworten zu verarbeiten und Fehler zu behandeln.

Voraussetzungen

Angular-Anwendungen verwenden die Node.js-Laufzeitumgebung. Um dieses Tutorial abzuschließen, müssen Sie Node.js auf Ihrem Computer installiert haben. Glücklicherweise ist Node.js recht einfach zu installieren. Wir haben hier eine vollständige Anleitung zur Installation von Node.js auf Ubuntu 18.04.

Darüber hinaus ist es von Vorteil, wenn Sie Angular kennen und mit der Verwendung des Angular CLI vertraut sind, um Angular-Anwendungen zu erstellen. Wir werden Node v8.12.0 und npm v6.4.1 verwenden.

Schritt 1: Angular-App erstellen

Lassen Sie uns zu Beginn eine neue Angular-App mit der Angular CLI erstellen. Wir nennen unsere Anwendung Angular-Interceptor. Führen Sie den folgenden Befehl aus, um die App zu erstellen:

Sie werden nach einigen Optionen gefragt. Geben Sie die Standardwerte ein und fahren Sie fort:

ang cli Angular Interceptors

Navigieren Sie als Nächstes in das Anwendungsverzeichnis und führen Sie den folgenden Befehl aus, um die Anwendung zu starten:

ng serve Angular Interceptors

Rufen Sie anschließend http://localhost:4200 in Ihrem Browser auf, um die App zu sehen. Sie haben nun eine grundlegende Angular-App konfiguriert.

Schritt 2: Angular-App stylen

Hier werden wir unsere Angular-App mit Angular Material stylen. Um Angular Material in Ihrem Projekt zu installieren, führen Sie den folgenden Befehl aus:

Dadurch wird @angular/material, @angular/cdk und @angular/animation in Ihrem Projekt installiert. Als Nächstes werden wir eine Animation im Projekt einrichten. Fügen Sie BrowserAnimationsModule in Ihrer src/app/module.ts-Datei hinzu:

Wir werden die Dialog-Komponente von Angular Material verwenden. Um die Dialog-Komponente zu verwenden, müssen wir MatDialogModule in der src/app/app.module.ts-Datei importieren:

Um die Benutzeroberfläche ansprechender zu gestalten, fügen wir indigo-pink.css zu Ihrer styles.scss-Datei hinzu:

Schritt 3: Erstellen Sie Ihren Angular-Interceptor

Unter dem Ordner app erstellen wir einen neuen Ordner namens interceptor. Erstellen Sie in diesem neu erstellten Ordner eine neue httpconfig.interceptor.ts-Datei.

Wir müssen einige Abhängigkeiten in unsere httpconfig.interceptor.ts importieren, damit unser Interceptor funktioniert. Diese Abhängigkeiten sind HttpInterceptor, HttpRequest, HttpResponse und HttpHandler, HttpEvent, HttpErrorResponse.

Unsere httpconfig.interceptor.ts-Datei wird nach dem Import wie folgt aussehen:

Erstellen Sie als Nächstes eine Klasse HttpConfigInterceptor und implementieren Sie das Interface HttpInterceptor. Dies ist ein Beispiel:

Fügen Sie den folgenden Code in die httpconfig.interceptor.ts -Datei ein:

Damit es funktioniert, müssen wir httpconfig.interceptor.ts in unserer app.module.ts -Datei importieren:

Fügen Sie HttpConfigInterceptor zu providers hinzu. Wir setzen multi: auf true , um mehrere Interceptoren zu verarbeiten:

Im nächsten Abschnitt werden wir unseren Service zur Fehlerbehandlung erstellen.

Schritt 4: Service zur Fehlerbehandlung

Hier werden wir Code zur Fehlerbehandlung schreiben. Wir müssen die Fehler erfassen und sie den Endbenutzern angemessen anzeigen. Kurz gesagt sind dies die Schritte, denen wir folgen werden:

  1. Erstellen Sie einen Ordner namens error-dialog im app -Ordner.
  2. Erstellen Sie einen Service für Fehler namens errorDialogService in einer Datei namens errordialog.service.ts.
  3. Fügen Sie den folgenden Code ein in die errordialog.service.ts :
Erstellen Sie danach eine neue Datei namens errordialog.component.ts. Fügen Sie in dieser Datei den folgenden Code hinzu:
Schließlich müssen wir eine HTML-Datei erstellen, errordialog.component.html, für das Template:
Wir müssen die Datei httpconfig.interceptor.ts für einige Änderungen noch einmal ansehen. Diese Änderungen ermöglichen es uns, Fehler abzufangen.

Zusammenfassend listen wir die folgenden Schritte auf:

  1. Beginnen Sie mit dem Importieren von errordialog.service.
  2. Anschließend fügen wir den Konstruktor für errorDialogService.
  3. Wir werden auch den Code hinzufügen, um die Fehlerantwort zu verarbeiten, unter Verwendung von catchError und throwError.
  4. Importieren Sie errordialog.service und errordialog.component in das AppModule.

Nachdem wir die Änderungen vorgenommen haben, werden zwei Dateien geändert: app.module.ts und httpconfig.interceptor.ts:

Schritt 5: Erstellen von Beispiel-Services

In diesem Schritt werden wir zwei Services als Beispiel erstellen:

  1. Login-API
  2. Kundendetail-API

Erstellen Sie einen neuen Ordner namens services im Ordner src . Erstellen Sie als Nächstes in diesem neu erstellten Ordner eine neue Datei namens login.service.ts und fügen Sie zwei Funktionen hinzu:

Schritt 6: Aufrufen des HTTP-Client-Services

Schließlich sind wir beim letzten Teil unseres Tutorials angelangt. Wir werden unseren HTTP-Service aus der app.component.ts-Datei aufrufen. Fügen Sie die zwei LoginService-Funktionen zu app.component.ts hinzu. Rufen Sie die Login-API mit onload und die customers/details mit onclick:

Jetzt müssen wir ein UI-Element in app.component.html einfügen, damit der Benutzer darauf klicken kann:

Zum Abschluss müssen Sie den LoginService zu den providers in AppModule:

Unten finden Sie einen Screenshot des Fehlerbehandlungs-Dialogs:

error

Fazit

In diesem Tutorial haben wir gelernt, wie man HTTP-Anfragen und -Antworten mit Angular-Interceptoren verarbeitet. Wir haben auch gelernt, wie man Fehler mithilfe eines Dialogs in Angular Material behandelt.

Angular-Apps verwenden Node.js als Laufzeitumgebung. Wenn Sie mehr über Node.js erfahren möchten und darüber, wie Sie Node.js-Anwendungen auf Docker bereitstellen, lesen Sie unseren How to Deploy a Node.js (Express.js) App with Docker on Ubuntu 20.04-Leitfaden. Sie können sich auch How To Perform Production Tasks On Ubuntu 20.04 With Node.js und Installing Node.js on CentOS 8: a Complete Guide.

ansehen. Viel Spaß beim Programmieren!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.