APIs mit Amazon API Gateway erstellen

Bereitstellen von Anwendungen auf AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Drei Clients, ein Backend

  • Web, Mobile und ein Partner rufen dasselbe Backend auf
  • Alle sprechen leicht unterschiedliche Formate
  • Eine Eingangstür validiert und transformiert jeden Aufruf

 

Drei Client-Typen verbinden sich über ein einzelnes API Gateway, das Anfragen an Backend-Services weiterleitet

Bereitstellen von Anwendungen auf AWS

Was API Gateway macht

API Gateway als verwaltete Eingangstür: Web- und Mobile-Clients gehen durch ein zentrales Gateway mit Routing-, Auth-, Throttling- und Transformationsfunktionen zu Lambda, HTTP-Endpunkten und AWS-Services

  • Eine vollständig verwaltete Eingangstür für deine APIs
  • Übernimmt Routing, Auth, Throttling und Transformation
  • Sitzt zwischen Clients und deinem Backend
  • Backends: Lambda, HTTP-Endpunkte oder AWS-Services
Bereitstellen von Anwendungen auf AWS

Integrationstypen

  • Lambda-Proxy: übergibt die gesamte Anfrage an Lambda
  • Lambda Non-Proxy: du mapst Anfrage- und Antwortfelder
  • HTTP: leitet an ein HTTP-Backend weiter
  • MOCK: liefert eine Antwort ganz ohne Backend

Vier API-Gateway-Integrationstypen: Lambda-Proxy übergibt komplette Anfrage, Lambda Non-Proxy mit Mapping-Templates, HTTP leitet an Endpunkt weiter, MOCK liefert statische Antwort

Bereitstellen von Anwendungen auf AWS

Request- und Response-Transformationen

  • Mapping-Templates formen Payloads mit VTL um
  • Velocity Template Language transformiert Body, Header, Parameter
  • Request-Mapping: Clientformat → Backendformat
  • Response-Mapping: Backendformat → Clientformat

VTL-Mapping-Template-Fluss: Client-Payload wird per Request-Template vor dem Backend transformiert, dann formt das Response-Template die Backend-Antwort vor der Rückgabe an den Client

Bereitstellen von Anwendungen auf AWS

Request-Validierung

Request-Validierungsmodi: Body gegen JSON-Schema prüfen, erforderliche Query- und Header-Parameter validieren oder beides prüfen, bevor das Lambda-Backend aufgerufen wird

  • Schlechte Eingaben vor dem Backend ablehnen
  • Erforderliche Parameter: Header, Query-Strings, Pfade
  • Modell-Schemas: die Form des JSON-Bodys prüfen
  • Body, Parameter oder beides validieren
Bereitstellen von Anwendungen auf AWS

Statuscodes und Fehlerverträge

  • Backend-Statuscodes überschreiben für einen konsistenten Vertrag
  • Backend-502 für Clients sauber als 503 mappen
  • Gateway-Responses: Fehler-Bodies anpassen
  • Clients erhalten vorhersagbare Fehler, unabhängig vom Backend

Voller API-Gateway-Lebenszyklus: Validierung blockiert schlechte Eingaben am Tor, Mapping-Template formt gültige Eingaben fürs Backend, Response-Template formatiert die Ausgabe zu einem konsistenten Client-Vertrag

Bereitstellen von Anwendungen auf AWS

Alles zusammenführen

  • Client-Request → Validierung → Transformation → Backend
  • Schlechte Eingaben am Tor abgewiesen
  • Gute Eingaben fürs Backend umgeformt
  • Backend-Antwort in den Client-Vertrag umgeformt

Voller API-Gateway-Lebenszyklus: Validierung blockiert schlechte Eingaben am Tor, Mapping-Template formt gültige Eingaben fürs Backend, Response-Template formatiert die Ausgabe zu einem konsistenten Client-Vertrag

Bereitstellen von Anwendungen auf AWS

Lass uns üben!

Bereitstellen von Anwendungen auf AWS

Preparing Video For Download...