API-Proxys (API Gateway als Proxy)
Was ist ein API-Proxy
Ein API-Proxy (API Gateway) ist ein Vermittlungsserver, der API-Anfragen von Clients empfängt, verarbeitet und an Backend-Dienste weiterleitet. Im Gegensatz zu regulären HTTP-Proxys ist ein API Gateway auf die Verwaltung von API-Verkehr spezialisiert: Routing, Authentifizierung, Ratenbegrenzung, Transformation und Überwachung.
Ein API Gateway ist eine Schlüsselkomponente der Microservice-Architektur und ein wichtiges Werkzeug, um APIs sicher externen Konsumenten zugänglich zu machen.
Rollen eines API-Proxys
1. Zentraler Einstiegspunkt
Clients greifen über eine einzige Adresse (api.example.com) zu, und das Gateway leitet Anfragen an die entsprechenden Microservices weiter:
- api.example.com/users → user-service
- api.example.com/orders → order-service
- api.example.com/products → product-service
2. Authentifizierung und Autorisierung
Das Gateway überprüft API-Schlüssel, JWT-Tokens und OAuth-Anmeldeinformationen, bevor die Anfrage das Backend erreicht. Dies entlastet die Microservices.
3. Ratenbegrenzung
Begrenzung der Anzahl von Anfragen von einem einzelnen Client/IP innerhalb eines Zeitraums. Schutz vor Missbrauch und Überlastung.
4. Anfragetransformation
Modifikation von Headern, Parametern und Anforderungs-/Antwortkörpern. Zum Beispiel die Konvertierung von XML zu JSON für Legacy-Dienste.
5. Caching
Zwischenspeichern von API-Antworten, um die Backend-Last zu reduzieren und die Antwortzeiten zu beschleunigen.
6. Überwachung und Protokollierung
Sammeln von Metriken für jeden API-Endpunkt: Anzahl der Anfragen, Latenz, Fehlerrate.
API Gateway im Kontext von Proxys
Unterschiede zu einem regulären Reverse Proxy
| Parameter | Reverse Proxy (Nginx) | API Gateway |
|---|---|---|
| Fokus | Allgemeiner HTTP-Verkehr | API-spezifischer Verkehr |
| Routing | Nach URL/Host | Nach API-Pfad, Version, Headern |
| Auth | Basic | OAuth, JWT, API-Schlüssel, HMAC |
| Ratenbegrenzung | Einfach (pro IP) | Erweitert (pro Benutzer, pro Plan) |
| Transformation | Minimal | Vollständig (JSON/XML, Protokoll) |
| Versionierung | Nein | /v1/, /v2/ Routing |
| Entwicklerportal | Nein | Dokumentation, Schlüssel, Überwachung |
API Gateway als Proxy für externe APIs
Neben der Funktion als Frontend-Gateway für eigene Dienste kann ein API-Proxy auch für den Zugriff auf externe APIs verwendet werden:
- Aggregation — Zusammenfassen von Anfragen an mehrere APIs zu einer einzigen
- Umgehen von Ratenbegrenzungen — Verteilung von Anfragen über einen IP-Pool
- Caching — Reduzierung der Anzahl tatsächlicher Anfragen an die API
- Failover — Umschalten zwischen API-Anbietern
Beliebte API Gateway-Lösungen
Open Source
| Lösung | Sprache | Funktionen |
|---|---|---|
| Kong | Lua/Go | Am beliebtesten, Plugin-basierte Architektur |
| Tyk | Go | Integrierte Analysen und Portal |
| KrakenD | Go | Ultraschnell, zustandslos |
| APISIX | Lua | Apache Foundation, dynamisches Routing |
| Gravitee | Java | Event-nativ, richtlinienbasiert |
Cloud-basiert
| Lösung | Anbieter | Funktionen |
|---|---|---|
| AWS API Gateway | Amazon | Lambda-Integration, vollständig verwaltet |
| Azure API Management | Microsoft | Entwicklerportal, umfassende Plattform |
| Google Cloud Endpoints | gRPC-nativ, Cloud Run-Integration | |
| Cloudflare API Shield | Cloudflare | DDoS-Schutz, Edge-Bereitstellung |
API Proxy-Nutzungsmuster
API-Komposition
Das Gateway kombiniert Antworten von mehreren Microservices zu einer einzigen Antwort für den Client.
Backend for Frontend (BFF)
Separate API Gateways für verschiedene Clients (mobile App, Web, IoT). Jedes ist für seinen spezifischen Client-Typ optimiert.
API-Versionierung
Weiterleiten von Anfragen an verschiedene Backend-Versionen:
- /api/v1/users → alter Dienst
- /api/v2/users → neuer Dienst
Circuit Breaker
Automatische Deaktivierung eines problematischen Backends, wenn ein Fehlerschwellenwert überschritten wird. Anfragen geben eine Fallback-Antwort zurück.
Request Shadowing
Duplizieren des Datenverkehrs an ein Test-Backend für Lasttests, ohne die Produktion zu beeinträchtigen.
API-Proxys zum Umgehen von Einschränkungen
Proxying von kostenpflichtigen APIs
Erstellen eines Proxys vor einer kostenpflichtigen API für:
- Hinzufügen von Caching (Kostenreduzierung)
- Überwachung der Nutzung
- Fallback auf eine alternative API
- Clientseitige Ratenbegrenzung
Umgehen von CORS
Ein API-Proxy auf Ihrer Domain löst CORS-Probleme beim Zugriff auf externe APIs von einem Browser aus.
Protokolltransformation
Konvertierung zwischen REST, GraphQL, gRPC, SOAP über ein API Gateway. Der Client kommuniziert über ein Protokoll, während das Backend ein anderes verwendet.
API Gateway-Sicherheit
Schlüsselmaßnahmen
- TLS-Terminierung — HTTPS am Einstiegspunkt
- Eingabevalidierung — Überprüfung der Anforderungsparameter
- IP-Whitelisting — Einschränkung des Zugriffs nach IP
- JWT-Validierung — Token-Verifizierung
- Begrenzung der Anforderungsgröße — Begrenzung der Größe von Anfragen
- SQL-Injection-Schutz — Filtern bösartiger Anfragen
WAF-Integration
Ein API Gateway wird oft mit einer Web Application Firewall für zusätzlichen Schutz vor Angriffen integriert.
Fazit
API-Proxys und API Gateways sind spezialisierte Proxy-Typen zur Verwaltung von API-Verkehr. Sie gewährleisten API-Sicherheit, Skalierbarkeit und Beobachtbarkeit. In einer Microservice-Architektur ist ein API Gateway eine unverzichtbare Komponente, und im Kontext der Arbeit mit externen APIs ist es ein leistungsstarkes Werkzeug zur Optimierung und Kontrolle.