Im vorherigen Tutorial haben Sie gesehen, wie Sie Routing in Angular-Webanwendungen mithilfe von Angular-Routing implementieren.
In diesem Lernprogramm erfahren Sie, wie Sie mithilfe von Angular über eine Angular-Anwendung mit Web-APIs und -Diensten kommunizieren HttpClient
.
Sie benutzen die XMLHttpRequest (XHR)
Objekt, um serverseitige API-Aufrufe vom Browser aus durchzuführen. Das XHR
Mit object können Sie einen Teil der Webseite aktualisieren, ohne die gesamte Seite neu laden zu müssen. Sie können Daten vom Server senden und empfangen, nachdem die Webseite geladen wurde.
Winkelig HttpClient
bietet einen Wrapper für die XHR
Objekt, wodurch es einfacher ist, API-Aufrufe über die Angular-Anwendung auszuführen.
Aus der offiziellen Dokumentation:
MitHttpClient
,@ eckig / common / http
Bietet eine vereinfachte API für HTTP-Funktionen zur Verwendung mit Angular-Anwendungen, die auf derXMLHttpRequest
Schnittstelle, die von Browsern verfügbar gemacht wird. Zusätzliche Vorteile vonHttpClient
Testbarkeitsunterstützung, starke Typisierung von Request- und Response-Objekten, Request- und Response-Interceptor-Unterstützung sowie bessere Fehlerbehandlung über apis auf Basis von Observables.
Sie beginnen mit dem Klonen des Quellcodes aus dem ersten Teil der Übungsreihe.
Git Klon https://github.com/royagasthyan/AngularComponent.git
Wenn Sie über den Quellcode verfügen, navigieren Sie zum Projektverzeichnis und installieren Sie die erforderlichen Abhängigkeiten.
cd AngularComponent npm installieren
Starten Sie nach der Installation der Abhängigkeiten die Anwendung, indem Sie den folgenden Befehl eingeben:
ng dienen
Sie sollten die Anwendung auf http: // localhost: 4200 / ausführen..
Um die HttpClient
Modul in Ihrer Angular-Anwendung müssen Sie es zuerst in Ihre importieren app.module.ts
Datei.
Navigieren Sie im Projektverzeichnis zu src / app / app.module.ts
. In dem app.module.ts
Datei, importieren Sie die HttpClientModule
.
importiere HttpClientModule aus '@ angle / common / http';
Umfassen die HttpClientModule
unter dem Einfuhrabschnitt.
Importe: [BrowserModule, FormsModule, HttpClientModule]
Hier ist wie das app.module.ts
Datei sieht:
BrowserModule aus '@ angle / platform-browser' importieren; NgModule aus '@ angle / core' importieren; import AppComponent aus './app.component'; import CalcComponent aus './calc/calc.component' import FormsModule aus '@ angle / forms'; importiere HttpClientModule aus '@ angle / common / http'; @NgModule (Deklarationen: [AppComponent, CalcComponent]) importiert: [BrowserModule, FormsModule, HttpClientModule], Provider: [], Bootstrap: [AppComponent]) Exportklasse AppModule
Jetzt können Sie die verwenden HttpClientModule
über die Angular-Anwendung durch Importieren in die bestimmte Angular-Komponente.
Beginnen wir mit dem Erstellen der Winkelkomponente. Erstellen Sie einen Ordner mit dem Namen Daten empfangen
in der src / app
Mappe. Erstellen Sie eine Datei mit dem Namen get-data.component.ts
und fügen Sie den folgenden Code hinzu:
Component aus '@ angle / core' importieren; @Component (Selector: 'get-data', templateUrl: 'get-data.component.html', styleUrls: ['get-data.component.css']) export-Klasse GetDataComponent constructor ()
Erstellen Sie eine Datei mit dem Namen get-data.component.html
die als Vorlagendatei für die dienen würde Daten empfangen
Komponente. Fügen Sie den folgenden Code für das hinzu get-data.component.html
Datei:
Datenkomponente abrufen
Importieren Sie die GetDataComponent
in dem src / app / app.module.ts
Datei.
import GetDataComponent aus './get-data/get-data.component';
Ergänzen Sie die GetDataComponent
zum ngModule
in dem app.module.ts
.
Deklarationen: [AppComponent, CalcComponent, GetDataComponent]
So wird das modifiziert app.module.ts
Datei sieht:
BrowserModule aus '@ angle / platform-browser' importieren; NgModule aus '@ angle / core' importieren; import AppComponent aus './app.component'; import CalcComponent aus './calc/calc.component'; import GetDataComponent aus './get-data/get-data.component'; FormsModule aus '@ angle / forms' importieren; importiere HttpClientModule aus '@ angle / common / http'; @NgModule (Deklarationen: [AppComponent, CalcComponent, GetDataComponent]) importiert: [BrowserModule, FormsModule, HttpClientModule], Provider: [], Bootstrap: [AppComponent]) Exportklasse AppModule
Ergänzen Sie die Daten empfangen
Komponentenauswahl zum app.component.html
Datei. So sieht es aus:
Speichern Sie die obigen Änderungen und starten Sie den Server. Sie können das sehen Daten empfangen
Komponente, die angezeigt wird, wenn die Anwendung geladen wird.
Sie werden das verwenden HttpClient
Modul für API-Aufrufe. Erstellen Sie eine separate Datei, um einen Angular-Dienst für den Aufruf der API zu erstellen. Erstellen Sie eine Datei mit dem Namen get-data.service.ts
Datei. Fügen Sie dem folgenden Code hinzu get-data.service.ts
Datei:
import Injectable aus '@ angle / core'; @Injectable () Exportklasse GetDataService Konstruktor ()
Importieren Sie die HttpClient
Modul zu den oben genannten GetDataService
.
HttpClient aus '@ angle / common / http' importieren;
Initialisieren Sie die HttpClient
in dem GetDataService
Konstrukteur.
Konstruktor (privater http: HttpClient)
Erstellen Sie eine aufgerufene Methode call_api
einen GET-API-Aufruf in der GetDataService
Datei. Sie verwenden eine Word Synonym Finder API, um den API-Aufruf durchzuführen. Hier ist wie das call_api
Methode sieht aus:
call_api (term) return this.http.get (this.url + term);
Hier ist wie das get-data.service.ts
Datei sieht:
import Injectable aus '@ angle / core'; HttpClient aus '@ angle / common / http' importieren; @Injectable () - Exportklasse GetDataService URL: String-Konstruktor (privater http: HttpClient) this.url = 'https://api.datamuse.com/words?ml=' call_api (term) return this.http. get (this.url + Begriff);
Wie oben zu sehen GetDataService
Klasse, die call_api
Diese Methode gibt ein Observable zurück, für das Sie das Abonnement abonnieren können GetDataComponent
.
Abonnieren von der GetDataComponent
Konstruktor, Sie müssen die importieren GetDataService
in dem GetDataComponent
.
import GetDataService aus './get-data.service';
Definiere das GetDataService
wie GetDataComponent
Anbieter.
@Component (Selector: 'get-data', templateUrl: 'get-data.component.html', styleUrls: ['get-data.component.css'], Provider: [GetDataService])
Lassen Sie uns vom abonnieren GetDataComponent
Konstruktor-Methode.
Konstruktor (privater Datenservice: GetDataService) this.dataService.call_api ('hello'). subscribe (response => console.log ('Response is', response);)
Hier ist wie das get-data.component.ts
Datei sieht:
Component aus '@ angle / core' importieren; import GetDataService aus './get-data.service'; @Component (Selector: 'get-data', templateUrl: 'get-data.component.html', styleUrls: ['get-data.component.css'], provider: [GetDataService]) Exportklasse GetDataComponent Konstruktor (privater dataService: GetDataService) this.dataService.call_api ('Hallo'). subscribe (Antwort => console.log ('Antwort ist', Antwort);)
Speichern Sie die obigen Änderungen und starten Sie den Server erneut. Sie können das Ergebnis in der Browserkonsole protokollieren.
Im obigen Code haben Sie gesehen, wie Sie mithilfe von Angular eine GET-API-Anforderung erstellen HttpClient
.
Um eine POST-Anfrage zu stellen, müssen Sie die http.post
Methode.
this.http.post (url, key: value);
Wie im obigen Code gezeigt, müssen Sie die API-Post-URL und die zu veröffentlichenden Daten als zweiten Parameter angeben.
Wenn Sie einen API-Aufruf ausführen, besteht die gleiche Wahrscheinlichkeit, dass ein Fehler auftritt. Um Fehler beim API-Aufruf zu behandeln, müssen Sie dem Fehler-Handler hinzufügen abonnieren
Methode zusammen mit der Antwort
Handler.
So sieht der modifizierte Code aus GetDataComponent
sieht aus:
Konstruktor (privater DatenService: GetDataService) this.dataService.call_api ('Hallo'). subscribe (Antwort => console.log ('Antwort ist', Antwort);, err => console.log ('Etwas ist gelaufen falsch ', err);)
Modifiziere den url
Variable in der get-data.service.ts
Datei, um eine nicht vorhandene URL zu erstellen, die beim Aufruf der API einen Fehler verursachen würde.
this.url = 'https://ai.datamuse.com/words?ml='
Speichern Sie die obigen Änderungen und starten Sie den Server erneut. Überprüfen Sie die Browserkonsole. Die Fehlerbehandlungsmethode wird aufgerufen und der Fehler wird protokolliert.
Das Fehlerobjekt enthält alle Details zum Fehler, z. B. Fehlercode, Fehlernachricht usw. Es gibt einen tieferen Einblick in den Fehler des API-Aufrufs. So sieht das Browserkonsolenprotokoll aus:
Wie aus dem obigen Konsolenprotokoll hervorgeht, können alle Fehlerdetails vom Fehlerobjekt abgerufen werden.
In diesem Tutorial haben Sie gesehen, wie Sie das Angular verwenden können HttpClientModule
API-Aufrufe durchführen. Sie haben gelernt, wie man die importiert HttpClientModule
für die Anforderung von GET und POST an die Server-APIs. Sie haben gesehen, wie Sie Fehler beim Aufruf einer API behandeln.
Wie waren Ihre Erfahrungen mit dem Versuch, mit Angular API-Aufrufe durchzuführen HttpClientModule
? Teilen Sie uns Ihre Meinung in den Kommentaren unten mit.
Der Quellcode aus diesem Tutorial ist auf GitHub verfügbar.