HttpInterceptor wurde mit Angular 4.3.1 eingeführt. Er bietet eine Möglichkeit, HTTP-Anfragen und -Antworten abzufangen, um sie zu transformieren oder zu verarbeiten, bevor sie weitergegeben werden.
Es gibt zwei Anwendungsfälle, die wir im Interceptor implementieren können.
Erstens können wir den HTTP-Aufruf einmal oder mehrmals wiederholen, bevor wir den Fehler auslösen. In einigen Fällen, z. B. bei einer Zeitüberschreitung, können wir fortfahren, ohne die Ausnahme auszulösen.
Dazu verwenden wir den Retry-Operator von RxJS, um das Observable erneut zu abonnieren.
Fortgeschrittenere Beispiele für diese Art von Verhalten:
Wiederholung einer Observable-Sequenz bei Fehler basierend auf benutzerdefinierten Kriterien
Leistung von RxJS bei Verwendung von exponentiellem Backoff
Wir können dann den Status der Ausnahme überprüfen und sehen, ob es sich um einen 401 unautorisierten Fehler handelt. Bei tokenbasierter Sicherheit können wir versuchen, das Token zu aktualisieren. Wenn dies nicht funktioniert, können wir den Benutzer auf die Anmeldeseite umleiten.
Hier versuchen wir es einmal, bevor wir den Fehlerstatus prüfen und den Fehler erneut auslösen. Das Aktualisieren von Sicherheitstokens liegt außerhalb des Rahmens dieses Artikels.
Wir müssen auch den Interceptor bereitstellen, den wir erstellt haben.
Benachrichtigungen
Für Benachrichtigungen verwende ich Angular Material Snackbar.