Επιστροφή στο blog

Διαχείριση αιτημάτων HTTP και χειρισμός σφαλμάτων με Angular Interceptors

Διαχείριση αιτημάτων HTTP και χειρισμός σφαλμάτων με Angular Interceptors

Αν αναπτύσσετε μια εφαρμογή χρησιμοποιώντας AngularJS, πιθανώς γνωρίζετε τους HTTP interceptors. Ωστόσο, αυτοί οι HTTP interceptors δεν ήταν διαθέσιμοι στο Angular μέχρι την έκδοση 4.3. Σε αυτόν τον οδηγό, θα χρησιμοποιήσουμε interceptors στο Angular για να χειριστούμε αιτήματα και απαντήσεις HTTP, καθώς και να επεξεργαστούμε σφάλματα.

Προαπαιτούμενα

Angular οι εφαρμογές χρησιμοποιούν το Node.js περιβάλλον εκτέλεσης. Για να ολοκληρώσετε αυτόν τον οδηγό, θα πρέπει να έχετε εγκατεστημένο το Node.js στον υπολογιστή σας. Ευτυχώς, το Node.js είναι αρκετά εύκολο στην εγκατάσταση. Έχουμε έναν πλήρη οδηγό για το Πώς να εγκαταστήσετε το Node.js σε Ubuntu 18.04 εδώ.

Επιπλέον, θα είναι χρήσιμο να γνωρίζετε Angular και να είστε εξοικειωμένοι με τη χρήση του Angular CLI για τη δημιουργία εφαρμογών Angular. Θα χρησιμοποιήσουμε το Node v8.12.0 και το npm v6.4.1.

Βήμα 1: Δημιουργία εφαρμογής Angular

Για αρχή, ας δημιουργήσουμε μια νέα εφαρμογή Angular χρησιμοποιώντας το Angular CLI. Θα ονομάσουμε την εφαρμογή μας Angular-Interceptor. Εκτελέστε την παρακάτω εντολή για να δημιουργήσετε την εφαρμογή:

Θα σας ζητηθούν κάποιες επιλογές. Εισαγάγετε τις προεπιλεγμένες τιμές και προχωρήστε:

ang cli Angular Interceptors

Στη συνέχεια, μεταβείτε στον κατάλογο της εφαρμογής και εκτελέστε την παρακάτω εντολή για να εκκινήσετε την εφαρμογή:

ng serve Angular Interceptors

Στη συνέχεια, δείτε το http://localhost:4200 στο πρόγραμμα περιήγησής σας για να δείτε την εφαρμογή. Έχετε πλέον ρυθμίσει μια βασική εφαρμογή Angular.

Βήμα 2: Μορφοποίηση της εφαρμογής Angular

Εδώ θα μορφοποιήσουμε την εφαρμογή Angular χρησιμοποιώντας το Angular Material. Για να εγκαταστήσετε το Angular Material στο έργο σας, εκτελέστε την παρακάτω εντολή:

Αυτό θα εγκαταστήσει τα @angular/material, @angular/cdk, και @angular/animation στο έργο σας. Στη συνέχεια, θα ρυθμίσουμε ένα animation στο έργο. Προσθέστε το BrowserAnimationsModule στο αρχείο σας src/app/module.ts :

Θα χρησιμοποιήσουμε το Dialog component από το Angular Material. Για να χρησιμοποιήσουμε το Dialog component, πρέπει να εισαγάγουμε το MatDialogModule στο αρχείο src/app/app.module.ts :

Για να κάνουμε το UI πιο ελκυστικό, ας προσθέσουμε το indigo-pink.css στο αρχείο σας styles.scss :

Step 3: Build Your Angular Interceptor

Κάτω από τον φάκελο app, θα δημιουργήσουμε έναν νέο φάκελο με το όνομα interceptor. Μέσα σε αυτόν τον νεοσύστατο φάκελο, δημιουργήστε ένα νέο αρχείο httpconfig.interceptor.ts .

Πρέπει να εισαγάγουμε ορισμένες εξαρτήσεις στο httpconfig.interceptor.ts για να λειτουργήσει ο interceptor μας. Αυτές οι εξαρτήσεις είναι οι HttpInterceptor, HttpRequest, HttpResponse, και οι HttpHandler, HttpEvent, HttpErrorResponse.

Το αρχείο μας httpconfig.interceptor.ts θα μοιάζει με το παρακάτω μετά την εισαγωγή:

Στη συνέχεια, δημιουργήστε μια κλάση HttpConfigInterceptor και υλοποιήστε τη διεπαφή HttpInterceptor. Αυτό είναι ένα παράδειγμα:

Προσθέστε τον παρακάτω κώδικα στο httpconfig.interceptor.ts αρχείο:

Για να λειτουργήσει, πρέπει να εισαγάγουμε το httpconfig.interceptor.ts στο app.module.ts αρχείο:

Προσθέστε το HttpConfigInterceptor στο providers. Θα ορίσουμε το multi: true για να χειριστούμε πολλαπλούς interceptors:

In the next section, we shall create our service to handle errors.

Βήμα 4: Υπηρεσία για τη Διαχείριση Σφαλμάτων

Εδώ θα γράψουμε κώδικα για τη διαχείριση σφαλμάτων. Θα πρέπει να καταγράψουμε τα σφάλματα και να τα εμφανίσουμε κατάλληλα στους τελικούς χρήστες. Με λίγα λόγια, παρακάτω είναι τα βήματα που θα ακολουθήσουμε:

  1. Δημιουργήστε έναν φάκελο με όνομα error-dialog στον app φάκελο.
  2. Δημιουργήστε μια υπηρεσία για σφάλματα με όνομα errorDialogService σε ένα αρχείο με όνομα errordialog.service.ts.
  3. Προσθέστε τον παρακάτω κώδικα στο errordialog.service.ts :
Μετά από αυτό, δημιουργήστε ένα νέο αρχείο με όνομα errordialog.component.ts. Μέσα σε αυτό το αρχείο προσθέστε τον παρακάτω κώδικα:
Τέλος, πρέπει να δημιουργήσουμε ένα αρχείο HTML, errordialog.component.html, για το template:
Πρέπει να επισκεφτούμε ξανά το httpconfig.interceptor.ts αρχείο για μερικές αλλαγές. Αυτές οι αλλαγές θα μας επιτρέψουν να εντοπίζουμε σφάλματα.

Συνοψίζοντας, ας δούμε τα παρακάτω βήματα:

  1. Ξεκινήστε εισάγοντας το errordialog.service.
  2. Στη συνέχεια, θα προσθέσουμε τον constructor για το errorDialogService.
  3. Θα προσθέσουμε επίσης τον κώδικα για τη διαχείριση της απόκρισης σφάλματος χρησιμοποιώντας catchError και throwError.
  4. Εισαγάγετε το errordialog.service και το errordialog.component στο AppModule.

Αφού κάνουμε τις αλλαγές, δύο αρχεία θα τροποποιηθούν: app.module.ts και το httpconfig.interceptor.ts:

Βήμα 5: Δημιουργία Δειγματικών Υπηρεσιών

Σε αυτό το βήμα θα δημιουργήσουμε δύο υπηρεσίες ως δείγμα:

  1. Login API
  2. Customer Detail API

Δημιουργήστε έναν νέο φάκελο με όνομα services στον φάκελο src . Στη συνέχεια, μέσα σε αυτόν τον νεοδημιουργηθέντα φάκελο, δημιουργήστε ένα νέο αρχείο με όνομα login.service.ts, και προσθέστε δύο συναρτήσεις:

Βήμα 6: Κλήση της Υπηρεσίας HTTP Client

Τέλος, βρισκόμαστε στο τελευταίο μέρος του οδηγού μας. Θα καλέσουμε την υπηρεσία HTTP από το αρχείο app.component.ts . Προσθέστε τις δύο LoginService συναρτήσεις στο app.component.ts. Καλέστε το login API κατά το onload και το customers/details με onclick:

Τώρα πρέπει να προσθέσουμε ένα στοιχείο UI στο app.component.html, έτσι ώστε ο χρήστης να μπορεί να κάνει κλικ σε αυτό:

Για να τελειώσετε, θα πρέπει να συμπεριλάβετε το LoginService στο providers στο AppModule:

Παρακάτω, δείτε ένα στιγμιότυπο οθόνης του παραθύρου διαλόγου διαχείρισης σφαλμάτων:

error

Συμπέρασμα

Σε αυτόν τον οδηγό, μάθαμε πώς να χειριζόμαστε αιτήματα και απαντήσεις HTTP χρησιμοποιώντας Angular interceptors. Μάθαμε επίσης πώς να χειριζόμαστε σφάλματα χρησιμοποιώντας παράθυρα διαλόγου στο Angular Material.

Οι εφαρμογές Angular χρησιμοποιούν το Node.js ως περιβάλλον εκτέλεσης. Αν θέλετε να μάθετε περισσότερα για το Node.js και πώς να αναπτύξετε εφαρμογές Node.js στο Docker, δείτε τον οδηγό μας Πώς να αναπτύξετε μια εφαρμογή Node.js (Express.js) με Docker στο Ubuntu 20.04 οδηγό. Μπορείτε επίσης να δείτε το Πώς να εκτελέσετε εργασίες παραγωγής στο Ubuntu 20.04 με το Node.js και το Εγκατάσταση του Node.js στο CentOS 8: Ένας πλήρης οδηγός.

Καλό προγραμματισμό!

author

Pranay Kapgate

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.