API's ontwerpen op AWS

Toepassingen ontwikkelen op AWS

Ricardo Sueiras

Principal Technologist

API Gateway

 

Wat zijn API's

 

  • Amazon API Gateway: een beheerde service om API's te bouwen.
  • Ontwerp, implementeer, beheer en beveilig je API's.
Toepassingen ontwikkelen op AWS

Amazon API Gateway-mogelijkheden

 

API-mogelijkheden

  • Implementeer verschillende typen API.
Toepassingen ontwikkelen op AWS

Amazon API Gateway-mogelijkheden

 

API-mogelijkheden

  • Implementeer verschillende typen API.
  • Integreer met backendservices.
Toepassingen ontwikkelen op AWS

Amazon API Gateway-mogelijkheden

 

API Gateway-mogelijkheden

  • Implementeer verschillende typen API.
  • Integreer met backendservices.
  • Beveilig toegang tot API's.
Toepassingen ontwikkelen op AWS

Amazon API Gateway-mogelijkheden

 

API Gateway-mogelijkheden

  • Implementeer verschillende typen API.
  • Integreer met backendservices.
  • Beveilig toegang tot API's.
  • Beperk aanvragen om backends te beschermen.
Toepassingen ontwikkelen op AWS

Amazon API Gateway-mogelijkheden

 

API Gateway-mogelijkheden

  • Implementeer verschillende typen API.
  • Integreer met backendservices.
  • Beveilig toegang tot API's.
  • Beperk aanvragen om backends te beschermen.
  • Transformeer request- en response-payloads.
Toepassingen ontwikkelen op AWS

Amazon API Gateway-mogelijkheden

 

API Gateway-mogelijkheden

  • Implementeer verschillende typen API.
  • Integreer met backendservices.
  • Beveilig toegang tot API's.
  • Beperk aanvragen om backends te beschermen.
  • Transformeer request- en response-payloads.
  • Publiceer API's voor afnemers.
Toepassingen ontwikkelen op AWS

Amazon API Gateway-mogelijkheden

 

API Gateway-mogelijkheden

  • Implementeer verschillende typen API.
  • Integreer met backendservices.
  • Beveilig toegang tot API's.
  • Beperk aanvragen om backends te beschermen.
  • Transformeer request- en response-payloads.
  • Publiceer API's voor afnemers.
  • Beheer de API-levenscyclus: versiebeheer, deployment, aliassen.
Toepassingen ontwikkelen op AWS

API-typen

  • API Gateway ondersteunt drie API-typen:
    • REST API's
    • HTTP API's
    • WebSocket API's

 

API-typen

Toepassingen ontwikkelen op AWS

API Gateway-endpoints

  • Endpoints bepalen hoe clients je API bereiken.
  • Edge geoptimaliseerd: door AWS beheerde CloudFront voor lage latency wereldwijd.
  • Regionaal: uitgerold in een specifieke AWS-regio.
  • Privé: alleen bereikbaar via AWS PrivateLink.
  • Privé-endpoints blijven van het publieke internet af.

 

Endpoints

Toepassingen ontwikkelen op AWS

REST API's

  • Meest uitgebreide API Gateway-aanbod.
  • Gebouwd op een synchroon request/response-model.

 

REST API's

Toepassingen ontwikkelen op AWS

REST API-gebruiksscenario's

 

REST API-gebruiksscenario's

  • Enterprise-API's met volledig levenscyclusbeheer.
  • API's met geavanceerde beveiligingscontroles.
  • Ecosystemen van externe ontwikkelaars met API-sleutels en gebruiksplannen.
  • Directe AWS-service-integraties zonder Lambda.
Toepassingen ontwikkelen op AWS

API Gateway REST API-ondersteuning

 

REST API-ondersteuning

  • Requestvalidatie.
  • API-sleutels.
  • Gebruiksplannen en throttling.
  • Response-caching met configureerbare TTL.
  • Request/response-transformatie via VTL-templates.
  • IAM-authenticatie (Signature V4).
  • Lambda-authorizers, Cognito user pools.
Toepassingen ontwikkelen op AWS

API Gateway REST API-ondersteuning

 

 

REST API-ondersteuning

  • Drie endpointtypen ondersteund:
    • Edge geoptimaliseerd
    • Regionaal
    • Privé
  • Bescherming tegen webaanvallen met AWS WAF.
  • Canary-releases.
  • Observability via AWS X-Ray en CloudWatch-logging.
Toepassingen ontwikkelen op AWS

REST API-afwegingen

  • Duurder dan HTTP API's.
  • Iets hogere latency.

 

REST afwegingen

Toepassingen ontwikkelen op AWS

HTTP API's

  • Geoptimaliseerd voor performance en kosten boven functierijkdom:
    • Performance
    • Kosten

 

HTTP API's

Toepassingen ontwikkelen op AWS

HTTP API-gebruiksscenario's

  • Serverless-workloads en door Lambda ondersteunde API's.
  • Microservices en lichte proxy-API's.
  • Toepassingen gevoelig voor latency.
  • API's met OAuth 2.0/OIDC-authenticatie.

 

HTTP API-gebruiksscenario's

Toepassingen ontwikkelen op AWS

API Gateway HTTP API-ondersteuning

 

HTTP API-functies

  • Lambda-proxy-integraties en -authorizers.
  • Native JWT/OIDC-autorisatie (Cognito, Auth0, Okta).
  • Ingebouwde CORS-configuratie op API-niveau.
  • Privé VPC-integraties via VPC Link.
  • Basisparametermapping voor headers, querystrings en paden.
Toepassingen ontwikkelen op AWS

HTTP API-afwegingen

 

HTTP API-beperkingen

  • HTTP API's ondersteunen NIET:

    • API-sleutels
    • Gebruiksplannen
    • Requestvalidatie
    • Response-caching
    • Tracing met AWS X-Ray
    • VTL-payloadtransformatie

    • Ondersteunen alleen:

      • Edge- of privé-endpoints (alleen regionaal)
Toepassingen ontwikkelen op AWS

WebSocket API's

 

WebSocket API's

  • Tweewegcommunicatie tussen clients en servers.
  • Verbinding blijft open, anders dan bij REST en HTTP API's.
  • Servers kunnen data pushen naar verbonden clients.
Toepassingen ontwikkelen op AWS

WebSocket API-gebruiksscenario's

  • Chattoepassingen.
  • Realtime meldingen.
  • Realtime dashboards.

 

gebruiksscenario's

Toepassingen ontwikkelen op AWS

API Gateway WebSocket API-ondersteuning

  • Payload-datatransformaties.
  • Requestvalidatie.
  • Speciale ingebouwde routes:
    • $connect: client maakt een verbinding
    • $disconnect: client verbreekt de verbinding
    • $default: geen overeenkomende route gevonden

 

WebSocket API-functies

Toepassingen ontwikkelen op AWS

API-caching

  • Caching van responses verlaagt de backendlast.
  • Verbetert de API-prestaties.
  • Typische scenario's:
    • Vaak opgevraagde data
    • Leesintensieve API's
    • Minder Lambda-aanroepen

 

API-caching

Toepassingen ontwikkelen op AWS

API-caching

 

API cached response

  • Gecachte responses verlopen na een configureerbare TTL.
  • Beheer verouderde data door:
    • De cache te laten verlopen
    • De cache te flushen
Toepassingen ontwikkelen op AWS

Best practices voor API-ontwerp: gebruik duidelijke resourcenaamgeving

 

API-ontwerp - zelfstandige naamwoorden

  • Paden moeten resources voorstellen, geen acties.
  • Gebruik zelfstandige naamwoorden, geen werkwoorden.
  • Goed:
    • GET /orders/123
  • Vermijd:
    • GET /getOrder/123
Toepassingen ontwikkelen op AWS

Best practices voor API-ontwerp: versieer API's

 

Versiebeheer voor API's

  • Versieer API's om ze veilig te laten evolueren.
  • Voorkom dat bestaande clients breken.
  • Veelgebruikte aanpakken:
    • URI-versiebeheer: GET /v1/orders
    • Queryparameter: GET /orders?version=1
    • HTTP-header: Accept-Version: v1
Toepassingen ontwikkelen op AWS

API-ontwikkelaarsportalen

  • Publiceer en deel REST API's via een webportaal.
  • Bied documentatie aan voor API-afnemers.
  • Belangrijkste functies:
    • API-documentatie (Swagger-bestanden)
    • Onboarding van afnemers
    • SDK-downloads
    • Registratie van API-sleutels en abonnementsstromen

 

api gateway-portaal

Toepassingen ontwikkelen op AWS

OpenAPI-specificaties

  • OpenAPI (Swagger): de standaard om REST API's te beschrijven.
  • API Gateway kan OpenAPI-specificaties importeren en exporteren.

 

Swagger-ondersteuning in API Gateway

Toepassingen ontwikkelen op AWS

Laten we oefenen!

Toepassingen ontwikkelen op AWS

Preparing Video For Download...