Natrag na blog

Upravljanje HTTP zahtjevima i rukovanje pogreškama pomoću Angular presretača

Upravljanje HTTP zahtjevima i rukovanje pogreškama pomoću Angular presretača

Ako ste razvijali aplikaciju koristeći AngularJS, vjerojatno ste upoznati s HTTP presretačima. Međutim, ti HTTP presretači nisu bili dostupni u Angularu do verzije 4.3. U ovom vodiču koristit ćemo presretače u Angularu za upravljanje HTTP zahtjevima i odgovorima te za obradu pogrešaka.

Preduvjeti

Angular aplikacije koriste Node.js runtime. Kako biste dovršili ovaj vodič, morat ćete imati instaliran Node.js na svom računalu. Srećom, Node.js je prilično lako instalirati. Imamo cjeloviti vodič o tome Kako instalirati Node.js na Ubuntu 18.04 ovdje.

Osim toga, bit će vam korisno poznavati Angular i biti upoznati s korištenjem Angular CLI za izradu Angular aplikacija. Koristit ćemo Node v8.12.0 i npm v6.4.1.

Korak 1: Izrada Angular aplikacije

Za početak, stvorimo novu Angular aplikaciju pomoću Angular CLI-ja. Nazvat ćemo našu aplikaciju Angular-Interceptor. Pokrenite naredbu u nastavku kako biste stvorili aplikaciju:

Bit ćete upitani za nekoliko izbora. Unesite zadane vrijednosti i nastavite:

ang cli Angular Interceptors

Zatim idite u direktorij aplikacije i pokrenite naredbu u nastavku za pokretanje aplikacije:

ng serve Angular Interceptors

Zatim otvorite http://localhost:4200 u svom pregledniku kako biste vidjeli aplikaciju. Sada ste konfigurirali osnovnu Angular aplikaciju.

Korak 2: Stiliziranje Angular aplikacije

Ovdje ćemo stilizirati našu Angular aplikaciju koristeći Angular Material. Da biste instalirali Angular Material u svoj projekt, pokrenite naredbu u nastavku:

Ovo će instalirati @angular/material, @angular/cdk, i @angular/animation u vaš projekt. Zatim ćemo postaviti animaciju u projektu. Dodajte BrowserAnimationsModule u svoju src/app/module.ts datoteku:

Koristit ćemo komponentu Dialog iz Angular Materiala. Da bismo koristili komponentu Dialog, moramo uvesti MatDialogModule u src/app/app.module.ts datoteku:

Kako bi korisničko sučelje bilo privlačnije, dodajmo indigo-pink.css u vašu styles.scss datoteku:

Korak 3: Izrada vašeg Angular presretača

Unutar mape app stvorit ćemo novu mapu pod nazivom interceptor. Unutar te novoizrađene mape stvorite novu httpconfig.interceptor.ts datoteku.

Moramo uvesti neke ovisnosti u našu httpconfig.interceptor.ts kako bi naš presretač radio. Te ovisnosti su HttpInterceptor, HttpRequest, HttpResponse, i HttpHandler, HttpEvent, HttpErrorResponse.

Naša httpconfig.interceptor.ts datoteka izgledat će ovako nakon uvoza:

Zatim stvorite klasu HttpConfigInterceptor i implementirajte sučelje HttpInterceptor. Ovo je primjer:

Dodajte kod u nastavku u httpconfig.interceptor.ts datoteku:

Kako bi ovo radilo, moramo uvesti httpconfig.interceptor.ts u našu app.module.ts datoteku:

Dodajte HttpConfigInterceptor u providers. Postavit ćemo multi: true za rukovanje s više presretača:

U sljedećem odjeljku izradit ćemo našu uslugu za rukovanje pogreškama.

Korak 4: Usluga za rukovanje pogreškama

Ovdje ćemo pisati kod za rukovanje pogreškama. Morat ćemo uhvatiti pogreške i prikladno ih prikazati krajnjim korisnicima. Ukratko, u nastavku su koraci koje ćemo slijediti:

  1. Izradite mapu pod nazivom error-dialog u app mapi.
  2. Izradite uslugu za pogreške pod nazivom errorDialogService u datoteci pod nazivom errordialog.service.ts.
  3. Dodajte kod u nastavku u errordialog.service.ts :
Nakon toga, stvorite novu datoteku pod nazivom errordialog.component.ts. Unutar ove datoteke dodajte kod u nastavku:
Na kraju, moramo stvoriti HTML datoteku, errordialog.component.html, za predložak:
Moramo se vratiti na httpconfig.interceptor.ts datoteku radi nekih izmjena. Ove izmjene će nam omogućiti presretanje pogrešaka.

Ukratko, nabrojimo korake u nastavku:

  1. Započnite s uvozom errordialog.service.
  2. Zatim ćemo dodati konstruktor za errorDialogService.
  3. Također ćemo dodati kod za rukovanje odgovorom o pogrešci pomoću catchError i throwError.
  4. Uvezite errordialog.service i errordialog.component u AppModule.

Nakon što napravimo izmjene, modificirat će se dvije datoteke: app.module.ts i httpconfig.interceptor.ts:

Korak 5: Stvaranje oglednih servisa

U ovom koraku stvorit ćemo dva servisa kao primjer:

  1. API za prijavu
  2. API za detalje o korisniku

Stvorite novu mapu pod nazivom services u mapi src . Zatim unutar te novostvorene mape stvorite novu datoteku pod nazivom login.service.ts, i dodajte dvije funkcije:

Korak 6: Pozivanje servisa HTTP klijenta

Konačno, stigli smo do posljednjeg dijela našeg vodiča. Pozvat ćemo naš HTTP servis iz app.component.ts datoteke. Dodajte dvije LoginService funkcije u app.component.ts. Pozovite API za prijavu s onload i customers/details s onclick:

Sada moramo dodati UI element u app.component.html, kako bi korisnik mogao kliknuti na njega:

Za kraj, morat ćete uključiti LoginService u providers u AppModule:

U nastavku pronađite snimku zaslona dijaloškog okvira za rukovanje pogreškama:

error

Zaključak

U ovom smo vodiču naučili kako rukovati HTTP zahtjevima i odgovorima pomoću Angular presretača. Također smo naučili kako rukovati pogreškama pomoću dijaloškog okvira u Angular Materialu.

Angular aplikacije koriste Node.js kao svoje runtime okruženje. Ako želite saznati više o Node.js-u i kako implementirati Node.js aplikacije na Dockeru, pogledajte naš Kako implementirati Node.js (Express.js) aplikaciju s Dockerom na Ubuntu 20.04 vodič. Također možete pogledati Kako obavljati produkcijske zadatke na Ubuntu 20.04 s Node.js-om i Instalacija Node.js-a na CentOS 8: cjeloviti vodič.

Sretno kodiranje!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.