Vissza a bloghoz

HTTP-kérések kezelése és hibakezelés Angular interceptorokkal

HTTP-kérések kezelése és hibakezelés Angular interceptorokkal

Ha már fejlesztett alkalmazást AngularJS használatával, valószínűleg ismeri a HTTP interceptorokat. Azonban ezek a HTTP interceptorok az Angularban csak a 4.3-as verziótól kezdve érhetők el. Ebben az útmutatóban interceptorokat fogunk használni az Angularban a HTTP-kérések és -válaszok kezelésére, valamint a hibák feldolgozására.

Előfeltételek

Angular alkalmazások a Node.js futtatókörnyezetet használják. Az útmutató elvégzéséhez telepítenie kell a Node.js-t a gépére. Szerencsére a Node.js telepítése meglehetősen egyszerű. Van egy teljes útmutatónk arról, Hogyan telepítsük a Node.js-t Ubuntu 18.04-re itt.

Emellett hasznos lesz, ha ismeri az Angulart, és jártas az Angular CLI használatában az Angular alkalmazások készítéséhez. Mi a Node v8.12.0 és az npm v6.4.1 verziókat fogjuk használni.

1. lépés: Angular alkalmazás létrehozása

Kezdésként hozzunk létre egy új Angular alkalmazást az Angular CLI segítségével. Az alkalmazásunk neve Angular-Interceptor lesz. Futtassa az alábbi parancsot az alkalmazás létrehozásához:

Néhány választási lehetőséget fog kapni. Adja meg az alapértelmezett értékeket, és lépjen tovább:

ang cli Angular Interceptors

Ezután lépjen be az alkalmazás könyvtárába, és futtassa az alábbi parancsot az alkalmazás elindításához:

ng serve Angular Interceptors

Ezután nyissa meg a http://localhost:4200 címet a böngészőjében az alkalmazás megtekintéséhez. Ezzel konfigurált egy alapvető Angular alkalmazást.

2. lépés: Az Angular alkalmazás stílusának kialakítása

Itt az Angular alkalmazásunkat az Angular Material segítségével fogjuk formázni. Az Angular Material projektbe történő telepítéséhez futtassa az alábbi parancsot:

Ez telepíteni fogja az @angular/material, @angular/cdk, és az @angular/animation csomagokat a projektjében. Ezután beállítunk egy animációt a projektben. Adja hozzá a BrowserAnimationsModule modult a src/app/module.ts fájlhoz:

Az Angular Material Dialog komponensét fogjuk használni. A Dialog komponens használatához importálnunk kell a MatDialogModule modult a src/app/app.module.ts fájlban:

Hogy a felület tetszetősebb legyen, adjuk hozzá az indigo-pink.css fájlt a styles.scss fájlhoz:

3. lépés: Az Angular Interceptor elkészítése

Az app mappában létrehozunk egy új mappát, melynek neve interceptor lesz. Ebben az újonnan létrehozott mappában hozzon létre egy új httpconfig.interceptor.ts fájlt.

Importálnunk kell néhány függőséget a httpconfig.interceptor.ts fájlba, hogy az interceptorunk működjön. Ezek a függőségek a következők: HttpInterceptor, HttpRequest, HttpResponse, valamint a HttpHandler, HttpEvent, HttpErrorResponse.

A httpconfig.interceptor.ts fájlunk az importálás után így fog kinézni:

Ezután hozzon létre egy HttpConfigInterceptor osztályt, és implementálja a HttpInterceptor. Íme egy példa:

Add hozzá az alábbi kódot a(z) httpconfig.interceptor.ts fájlba:

Ahhoz, hogy működjön, importálnunk kell a(z) httpconfig.interceptor.ts fájlt az app.module.ts fájlunkba:

Add hozzá a(z) HttpConfigInterceptor elemet a providers tömbhöz. A multi: true értéket állítjuk be több interceptor kezeléséhez:

A következő részben létrehozzuk a hibák kezelésére szolgáló szolgáltatásunkat.

4. lépés: Szolgáltatás a hibák kezelésére

Itt fogjuk megírni a hibák kezelésére szolgáló kódot. El kell fognunk a hibákat, és megfelelően meg kell jelenítenünk azokat a végfelhasználóknak. Dióhéjban az alábbi lépéseket fogjuk követni:

  1. Hozz létre egy error-dialog nevű mappát az app mappában.
  2. Hozz létre egy hibakezelő szolgáltatást errorDialogService néven a következő fájlban: errordialog.service.ts.
  3. Add hozzá az alábbi kódot az errordialog.service.ts :
Ezután hozzon létre egy új fájlt a következő névvel: errordialog.component.ts. Ebbe a fájlba adja hozzá az alábbi kódot:
Végül létre kell hoznunk egy HTML-fájlt a következő névvel: errordialog.component.html, a sablonhoz:
Újra elő kell vennünk a httpconfig.interceptor.ts fájlt néhány változtatás elvégzéséhez. Ezek a változtatások lehetővé teszik a hibák elfogását.

Összefoglalásként tekintsük át az alábbi lépéseket:

  1. Kezdésként importálja a következőt: errordialog.service.
  2. Ezután hozzáadjuk a konstruktort a következőhöz: errorDialogService.
  3. Hozzáadjuk a hibaválasz kezelésére szolgáló kódot is a következő használatával: catchError és throwError.
  4. Importálja a következőt: errordialog.service és a errordialog.component a következőbe: AppModule.

A változtatások elvégzése után két fájl fog módosulni: app.module.ts és a httpconfig.interceptor.ts:

5. lépés: Minta szolgáltatások létrehozása

Ebben a lépésben két szolgáltatást fogunk létrehozni mintaként:

  1. Login API
  2. Ügyfélrészletek API

Hozzon létre egy új mappát, amelynek neve services a src mappában. Ezután ebben az újonnan létrehozott mappában hozzon létre egy új fájlt, amelynek neve login.service.ts, és adjon hozzá két függvényt:

6. lépés: A HTTP-kliens szolgáltatás meghívása

Végül elérkeztünk az útmutatónk utolsó részéhez. A HTTP-szolgáltatásunkat a app.component.ts fájlból fogjuk meghívni. Adja hozzá a két LoginService függvényt az app.component.ts fájlhoz. Hívja meg a login API-t az onload eseménnyel, a customers/details-t pedig az onclick:

Now we have to add a UI element in app.component.html, so that the user can click it:

To finish, you will need to include the LoginService to providers in AppModule:

Below, find a screenshot of the error handler dialog:

error

Conclusion

In this tutorial, we learned how to handle HTTP requests and responses using Angular interceptors. We also learned how to handle errors using dialog in Angular Material.

Angular apps use Node.js as their runtime. If you want to learn more about Node.js and how to deploy Node.js applications on Docker, check out our Hogyan telepítsünk Node.js (Express.js) alkalmazást Dockerrel Ubuntu 20.04-en című útmutatónkat. Emellett megtekintheti a Hogyan végezzünk éles környezeti feladatokat Ubuntu 20.04-en Node.js-szel és a A Node.js telepítése CentOS 8-ra: Teljes útmutató.

Sikeres fejlesztést!

author

Pranay Kapgate

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.