APIs auf AWS entwerfen

Anwendungen auf AWS entwickeln

Ricardo Sueiras

Principal Technologist

API Gateway

 

Was sind APIs

 

  • Amazon API Gateway: ein verwalteter Dienst zum Erstellen von APIs.
  • Entwirf, deploye, verwalte und sichere deine APIs.
Anwendungen auf AWS entwickeln

Amazon API Gateway: Funktionen

 

API-Funktionen

  • Verschiedene API-Typen implementieren.
Anwendungen auf AWS entwickeln

Amazon API Gateway: Funktionen

 

API-Funktionen

  • Verschiedene API-Typen implementieren.
  • In Backend-Services integrieren.
Anwendungen auf AWS entwickeln

Amazon API Gateway: Funktionen

 

API Gateway-Funktionen

  • Verschiedene API-Typen implementieren.
  • In Backend-Services integrieren.
  • Zugriff auf APIs absichern.
Anwendungen auf AWS entwickeln

Amazon API Gateway: Funktionen

 

API Gateway-Funktionen

  • Verschiedene API-Typen implementieren.
  • In Backend-Services integrieren.
  • Zugriff auf APIs absichern.
  • Anfragen drosseln, um Backends zu schützen.
Anwendungen auf AWS entwickeln

Amazon API Gateway: Funktionen

 

API Gateway-Funktionen

  • Verschiedene API-Typen implementieren.
  • In Backend-Services integrieren.
  • Zugriff auf APIs absichern.
  • Anfragen drosseln, um Backends zu schützen.
  • Request- und Response-Payloads transformieren.
Anwendungen auf AWS entwickeln

Amazon API Gateway: Funktionen

 

API Gateway-Funktionen

  • Verschiedene API-Typen implementieren.
  • In Backend-Services integrieren.
  • Zugriff auf APIs absichern.
  • Anfragen drosseln, um Backends zu schützen.
  • Request- und Response-Payloads transformieren.
  • APIs für Konsumierende veröffentlichen.
Anwendungen auf AWS entwickeln

Amazon API Gateway: Funktionen

 

API Gateway-Funktionen

  • Verschiedene API-Typen implementieren.
  • In Backend-Services integrieren.
  • Zugriff auf APIs absichern.
  • Anfragen drosseln, um Backends zu schützen.
  • Request- und Response-Payloads transformieren.
  • APIs für Konsumierende veröffentlichen.
  • API-Lebenszyklus managen: Versionierung, Deployments, Aliasse.
Anwendungen auf AWS entwickeln

API-Typen

  • API Gateway unterstützt drei API-Typen:
    • REST-APIs
    • HTTP-APIs
    • WebSocket-APIs

 

API-Typen

Anwendungen auf AWS entwickeln

API Gateway-Endpunkte

  • Endpunkte steuern, wie Clients deine API erreichen.
  • Edge-optimiert: von AWS verwaltetes CloudFront für geringe Latenz weltweit.
  • Regional: in eine bestimmte AWS-Region deployt.
  • Privat: nur über AWS PrivateLink erreichbar.
  • Private Endpunkte bleiben vom öffentlichen Internet getrennt.

 

Endpunkte

Anwendungen auf AWS entwickeln

REST-APIs

  • Umfangreichstes API-Gateway-Angebot.
  • Basiert auf einem synchronen Request/Response-Modell.

 

REST-APIs

Anwendungen auf AWS entwickeln

REST-API: Anwendungsfälle

 

REST-API-Anwendungsfälle

  • Enterprise-APIs mit vollständigem Lebenszyklus-Management.
  • APIs mit erweiterten Sicherheitsanforderungen.
  • Ökosysteme für Drittentwickler mit API-Schlüsseln und Nutzungsplänen.
  • Direkte AWS-Service-Integrationen ohne Lambda.
Anwendungen auf AWS entwickeln

API Gateway REST-API-Unterstützung

 

REST-API-Unterstützung

  • Request-Validierung.
  • API-Schlüssel.
  • Nutzungspläne und Drosselung.
  • Response-Caching mit konfigurierbarem TTL.
  • Request-/Response-Transformation über VTL-Templates.
  • IAM-Authentifizierung (Signature V4).
  • Lambda-Authorizer, Cognito User Pools.
Anwendungen auf AWS entwickeln

API Gateway REST-API-Unterstützung

 

 

REST-API-Unterstützung

  • Drei unterstützte Endpunkttypen:
    • Edge-optimiert
    • Regional
    • Privat
  • Schutz vor Web-Exploits mit AWS WAF.
  • Canary-Releases.
  • Observability via AWS X-Ray und CloudWatch-Logging.
Anwendungen auf AWS entwickeln

REST-APIs: Trade-offs

  • Teurer als HTTP-APIs.
  • Etwas höhere Latenz.

 

REST: Trade-offs

Anwendungen auf AWS entwickeln

HTTP-APIs

  • Für Performance und Kosten optimiert statt maximale Features:
    • Performance
    • Kosten

 

HTTP-APIs

Anwendungen auf AWS entwickeln

HTTP-API: Anwendungsfälle

  • Serverless-Workloads und Lambda-gestützte APIs.
  • Microservices und leichte Proxy-APIs.
  • Latenzempfindliche Anwendungen.
  • APIs mit OAuth 2.0-/OIDC-Authentifizierung.

 

HTTP-API-Anwendungsfälle

Anwendungen auf AWS entwickeln

API Gateway HTTP-API-Unterstützung

 

HTTP-API-Features

  • Lambda-Proxy-Integrationen und -Authorizer.
  • Native JWT/OIDC-Autorisierung (Cognito, Auth0, Okta).
  • Eingebaute CORS-Konfiguration auf API-Ebene.
  • Private VPC-Integrationen über VPC Link.
  • Basis-Parametermapping für Header, Query-Strings und Pfade.
Anwendungen auf AWS entwickeln

HTTP-API: Trade-offs

 

HTTP-API-Einschränkungen

  • HTTP-APIs unterstützen NICHT:

    • API-Schlüssel
    • Nutzungspläne
    • Request-Validierung
    • Response-Caching
    • Tracing mit AWS X-Ray
    • VTL-Payload-Transformation

    • Unterstützt werden nur:

      • Edge- oder private Endpunkte (nur regional)
Anwendungen auf AWS entwickeln

WebSocket-APIs

 

WebSocket-APIs

  • Zweiseitige Kommunikation zwischen Clients und Servern.
  • Verbindung bleibt offen, anders als bei REST- und HTTP-APIs.
  • Server können Daten an verbundene Clients pushen.
Anwendungen auf AWS entwickeln

WebSocket-API: Anwendungsfälle

  • Chat-Anwendungen.
  • Echtzeit-Benachrichtigungen.
  • Echtzeit-Dashboards.

 

Anwendungsfälle

Anwendungen auf AWS entwickeln

API Gateway WebSocket-API-Unterstützung

  • Transformation von Payload-Daten.
  • Request-Validierung.
  • Besondere eingebaute Routen:
    • $connect: Client stellt eine Verbindung her
    • $disconnect: Client trennt die Verbindung
    • $default: keine passende Route gefunden

 

WebSocket-API-Features

Anwendungen auf AWS entwickeln

API-Caching

  • Response-Caching reduziert die Backend-Last.
  • Verbessert die API-Performance.
  • Typische Anwendungsfälle:
    • Häufig abgefragte Daten
    • Leseintensive APIs
    • Weniger Lambda-Aufrufe

 

API-Caching

Anwendungen auf AWS entwickeln

API-Caching

 

Gecachte API-Antwort

  • Gecachte Responses laufen nach konfigurierbarem TTL ab.
  • Veraltete Daten managen durch:
    • Cache-Ablauf festlegen
    • Cache leeren
Anwendungen auf AWS entwickeln

Best Practices fürs API-Design: klare Ressourcennamen

 

API-Design – Substantive

  • Pfade sollten Ressourcen darstellen, keine Aktionen.
  • Verwende Substantive, keine Verben.
  • Gut:
    • GET /orders/123
  • Vermeiden:
    • GET /getOrder/123
Anwendungen auf AWS entwickeln

Best Practices fürs API-Design: APIs versionieren

 

APIs versionieren

  • Versioniere APIs, um sie sicher weiterzuentwickeln.
  • Vermeide Breaking Changes für bestehende Clients.
  • Gängige Ansätze:
    • URI-Versionierung: GET /v1/orders
    • Query-Parameter: GET /orders?version=1
    • HTTP-Header: Accept-Version: v1
Anwendungen auf AWS entwickeln

API-Developer-Portale

  • REST-APIs über ein Webportal veröffentlichen und teilen.
  • Dokumentation für API-Konsumierende bereitstellen.
  • Schlüsselmerkmale:
    • API-Dokumentation (Swagger-Dateien)
    • Onboarding für Konsumierende
    • SDK-Downloads
    • API-Schlüssel-Registrierung und Subscriptions

 

API Gateway-Portal

Anwendungen auf AWS entwickeln

OpenAPI-Spezifikationen

  • OpenAPI (Swagger): der Standard zur Beschreibung von REST-APIs.
  • API Gateway kann OpenAPI-Spezifikationen importieren und exportieren.

 

Swagger-Unterstützung in API Gateway

Anwendungen auf AWS entwickeln

Lass uns üben!

Anwendungen auf AWS entwickeln

Preparing Video For Download...