API
Zusammenfassung: API in Angular¶
In Angular bezieht sich die Arbeit mit APIs darauf, Daten von einem Backend (z. B. einem Webserver) abzurufen oder an diesen zu senden. Dies wird durch den HttpClient bereitgestellt, der ein Teil des HttpClientModule ist.
Grundlegende Schritte zum Arbeiten mit APIs in Angular¶
-
Importieren von HttpClientModule
Das Modul muss in derAppModuleoder einem Feature-Modul importiert werden: -
Erstellen eines Services für API-Aufrufe
API-Aufrufe werden üblicherweise in einem Service organisiert, um die Logik von der Komponente zu trennen:import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; @Injectable({ providedIn: 'root', }) export class ApiService { private apiUrl = 'https://api.example.com'; constructor(private http: HttpClient) {} getData(): Observable<any> { return this.http.get(`${this.apiUrl}/data`); } postData(payload: any): Observable<any> { return this.http.post(`${this.apiUrl}/data`, payload); } } -
Verwendung des Services in Komponenten
Der Service wird in der gewünschten Komponente eingebunden und verwendet:import { Component, OnInit } from '@angular/core'; import { ApiService } from './api.service'; @Component({ selector: 'app-my-component', template: ` <div *ngFor="let item of data">{{ item.name }}</div> `, }) export class MyComponent implements OnInit { data: any[] = []; constructor(private apiService: ApiService) {} ngOnInit(): void { this.apiService.getData().subscribe((response) => { this.data = response; }); } }
Wichtige Funktionen von HttpClient¶
-
GET-Anfragen Abrufen von Daten:
-
POST-Anfragen Senden von Daten:
-
PUT-Anfragen Aktualisieren von Daten:
-
DELETE-Anfragen Löschen von Daten:
Erweiterte Funktionen¶
-
Error Handling Fehler werden mit RxJS-Operatoren wie
catchErrorbehandelt: -
Interceptors Interceptors werden verwendet, um Anfragen oder Antworten zentral zu verändern, z. B. um Authentifizierungs-Header hinzuzufügen:
import { HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http'; import { Injectable } from '@angular/core'; @Injectable() export class AuthInterceptor implements HttpInterceptor { intercept(req: HttpRequest<any>, next: HttpHandler) { const cloned = req.clone({ headers: req.headers.set('Authorization', 'Bearer YOUR_TOKEN_HERE'), }); return next.handle(cloned); } } -
RxJS zur Datenverarbeitung Operatoren wie
mapundfilterhelfen, die Daten vor der Weitergabe zu transformieren:
Best Practices¶
- Services nutzen: API-Logik immer in Services auslagern.
- Error Handling einbauen: Fehler abfangen und informative Nachrichten anzeigen.
- Asynchronität verstehen: HTTP-Anfragen sind asynchron, verwende daher
subscribeoderasyncim Template. - Interceptors verwenden: Für Authentifizierung, Logging oder andere zentrale Logiken.
- Datenmodelle nutzen: Typisierte Modelle erstellen, um API-Daten klar zu strukturieren.
Zusammenfassung¶
Mit dem HttpClient in Angular kannst du einfach Daten von einem Backend abrufen oder senden. Die wichtigsten Punkte:
1. Importiere HttpClientModule.
2. Organisiere API-Aufrufe in Services.
3. Verwende RxJS für die Datenverarbeitung und Fehlerbehandlung.
4. Nutze Interceptors für zentrale Logiken wie Authentifizierung.
Das Arbeiten mit APIs in Angular ist flexibel und ermöglicht es, Daten sicher und effizient in deiner Anwendung zu nutzen.