Designa API:er på AWS

Utveckla applikationer på AWS

Ricardo Sueiras

Principal Technologist

API Gateway

 

Vad är API:er

 

  • Amazon API Gateway: en hanterad tjänst för att bygga API:er.
  • Designa, driftsätt, hantera och skydda dina API:er.
Utveckla applikationer på AWS

Amazon API Gateway – funktioner

 

API-funktioner

  • Implementera olika typer av API.
Utveckla applikationer på AWS

Amazon API Gateway – funktioner

 

API-funktioner

  • Implementera olika typer av API.
  • Integrera med serverdelstjänster.
Utveckla applikationer på AWS

Amazon API Gateway – funktioner

 

API Gateway-funktioner

  • Implementera olika typer av API.
  • Integrera med serverdelstjänster.
  • Skydda åtkomsten till API:er.
Utveckla applikationer på AWS

Amazon API Gateway – funktioner

 

API Gateway-funktioner

  • Implementera olika typer av API.
  • Integrera med serverdelstjänster.
  • Skydda åtkomsten till API:er.
  • Begränsa anrop för att skydda serverdelar.
Utveckla applikationer på AWS

Amazon API Gateway – funktioner

 

API Gateway-funktioner

  • Implementera olika typer av API.
  • Integrera med serverdelstjänster.
  • Skydda åtkomsten till API:er.
  • Begränsa anrop för att skydda serverdelar.
  • Transformera begäran och svarsnyttolaster.
Utveckla applikationer på AWS

Amazon API Gateway – funktioner

 

API Gateway-funktioner

  • Implementera olika typer av API.
  • Integrera med serverdelstjänster.
  • Skydda åtkomsten till API:er.
  • Begränsa anrop för att skydda serverdelar.
  • Transformera begäran och svarsnyttolaster.
  • Publicera API:er för konsumenter.
Utveckla applikationer på AWS

Amazon API Gateway – funktioner

 

API Gateway-funktioner

  • Implementera olika typer av API.
  • Integrera med serverdelstjänster.
  • Skydda åtkomsten till API:er.
  • Begränsa anrop för att skydda serverdelar.
  • Transformera begäran och svarsnyttolaster.
  • Publicera API:er för konsumenter.
  • Hantera API-livscykeln: versionshantering, driftsättning, alias.
Utveckla applikationer på AWS

API-typer

  • API Gateway stöder tre API-typer:
    • REST API:er
    • HTTP API:er
    • WebSocket API:er

 

API-typer

Utveckla applikationer på AWS

API Gateway-slutpunkter

  • Slutpunkter styr hur klienter når ditt API.
  • Edge-optimerad: AWS-hanterad CloudFront för låg global latens.
  • Regional: driftsatt i en specifik AWS-region.
  • Privat: nåbar endast via AWS PrivateLink.
  • Privata slutpunkter är skilda från det publika internet.

 

Slutpunkter

Utveckla applikationer på AWS

REST API:er

  • Det mest funktionsrika alternativet i API Gateway.
  • Bygger på en synkron begäran/svar-modell.

 

REST API:er

Utveckla applikationer på AWS

Användningsfall för REST API

 

Användningsfall för REST API

  • Enterprise-API:er som kräver fullständig livscykelhantering.
  • API:er med avancerade säkerhetskrav.
  • Tredjepartsutvecklare med API-nycklar och användningsplaner.
  • Direkta AWS-tjänstintegrationer utan Lambda.
Utveckla applikationer på AWS

API Gateway – stöd för REST API

 

Stöd för REST API

  • Begäransvalidering.
  • API-nycklar.
  • Användningsplaner och begränsning.
  • Svarscachning med konfigurerbar TTL.
  • Begäran/svar-transformation via VTL-mallar.
  • IAM-autentisering (Signature V4).
  • Lambda-auktoriserare, Cognito-användarpooler.
Utveckla applikationer på AWS

API Gateway – stöd för REST API

 

 

Stöd för REST API

  • Tre slutpunktstyper stöds:
    • Edge-optimerad
    • Regional
    • Privat
  • Skydd mot webbattacker med AWS WAF.
  • Canary-driftsättningar.
  • Observerbarhet via AWS X-Ray och CloudWatch-loggning.
Utveckla applikationer på AWS

REST API:er – avvägningar

  • Dyrare än HTTP API:er.
  • Något högre latens.

 

REST API – avvägningar

Utveckla applikationer på AWS

HTTP API:er

  • Optimerade för prestanda och kostnad framför bredd av funktioner:
    • Prestanda
    • Kostnad

 

HTTP API:er

Utveckla applikationer på AWS

Användningsfall för HTTP API

  • Serverlösa arbetsbelastningar och Lambda-baserade API:er.
  • Mikrotjänster och enkla proxy-API:er.
  • Latenskänsliga applikationer.
  • API:er med OAuth 2.0 / OIDC-autentisering.

 

Användningsfall för HTTP API

Utveckla applikationer på AWS

API Gateway – stöd för HTTP API

 

HTTP API-funktioner

  • Lambda-proxyintegrationer och auktoriserare.
  • Inbyggd JWT/OIDC-auktorisering (Cognito, Auth0, Okta).
  • Inbyggd CORS-konfiguration på API-nivå.
  • Privata VPC-integrationer via VPC Link.
  • Grundläggande parametermappning för huvuden, frågesträngar och sökvägar.
Utveckla applikationer på AWS

HTTP API:er – avvägningar

 

HTTP API-begränsningar

  • HTTP API:er stöder INTE:

    • API-nycklar
    • Användningsplaner
    • Begäransvalidering
    • Svarscachning
    • Spårning med AWS X-Ray
    • VTL-nyttolasttransformation

    • Stöder endast:

      • Edge- eller privata slutpunkter (endast regional)
Utveckla applikationer på AWS

WebSocket API:er

 

WebSocket API:er

  • Tvåvägskommunikation mellan klienter och servrar.
  • Anslutningen hålls öppen, till skillnad från REST och HTTP API:er.
  • Servrar kan skicka data till anslutna klienter.
Utveckla applikationer på AWS

Användningsfall för WebSocket API

  • Chattapplikationer.
  • Realtidsnotifieringar.
  • Realtidsinstrumentpaneler.

 

Användningsfall

Utveckla applikationer på AWS

API Gateway – stöd för WebSocket API

  • Transformation av nyttolastdata.
  • Begäransvalidering.
  • Inbyggda specialrutter:
    • $connect: klienten upprättar en anslutning
    • $disconnect: klienten kopplar ned
    • $default: ingen matchande rutt hittades

 

WebSocket API-funktioner

Utveckla applikationer på AWS

API-cachning

  • Cachning av svar minskar belastningen på serverdelar.
  • Förbättrar API-prestanda.
  • Vanliga användningsfall:
    • Ofta efterfrågad data
    • Läsintensiva API:er
    • Minska antalet Lambda-anrop

 

API-cachning

Utveckla applikationer på AWS

API-cachning

 

Cachade API-svar

  • Cachade svar upphör efter en konfigurerbar TTL.
  • Hantera inaktuell data genom att:
    • Låta cachen löpa ut
    • Tömma cachen
Utveckla applikationer på AWS

API-designpraxis: tydlig resursnamngivning

 

API-design – substantiv

  • Sökvägar ska representera resurser, inte åtgärder.
  • Använd substantiv, inte verb.
  • Bra:
    • GET /orders/123
  • Undvik:
    • GET /getOrder/123
Utveckla applikationer på AWS

API-designpraxis: versionshantering

 

Versionshantering av API:er

  • Versionshantera API:er för att kunna utveckla dem på ett säkert sätt.
  • Undvik att bryta befintliga klienter.
  • Vanliga metoder:
    • URI-versioning: GET /v1/orders
    • Frågeparameter: GET /orders?version=1
    • HTTP-huvud: Accept-Version: v1
Utveckla applikationer på AWS

API-utvecklarportaler

  • Publicera och dela REST API:er via en webbportal.
  • Tillhandahåll dokumentation till API-konsumenter.
  • Viktiga funktioner:
    • API-dokumentation (Swagger-filer)
    • Introduktion för konsumenter
    • SDK-nedladdningar
    • Registrering av API-nycklar och prenumerationsflöden

 

API Gateway-portal

Utveckla applikationer på AWS

OpenAPI-specifikationer

  • OpenAPI (Swagger): standardmetoden för att beskriva REST API:er.
  • API Gateway kan importera och exportera OpenAPI-specifikationer.

 

Swagger-stöd i API Gateway

Utveckla applikationer på AWS

Nu kör vi en övning!

Utveckla applikationer på AWS

Preparing Video For Download...