API-ontwikkeling

Toepassingen ontwikkelen op AWS

Ricardo Sueiras

Principal Technologist

API Gateway-integraties

 

API Gateway-integraties

  • Meerdere back-endintegratie-opties
  • HTTP: elke publiek routeerbare endpoint
  • AWS-service-API's zoals DynamoDB of SNS
  • Lambda-functies
  • Private resources via VPC-links
  • Mock-responses zonder echte back-end
Toepassingen ontwikkelen op AWS

Integratietypen: proxy

 

API-integratietypen

  • Integratietype bepaalt hoeveel controle API Gateway heeft
  • Proxytypen: AWS_PROXY en HTTP_PROXY
  • Hele HTTP-verzoek gaat direct naar de back-end
  • API Gateway is een transparante doorgifte
  • Back-end maakt de response
Toepassingen ontwikkelen op AWS

Integratietypen: non-proxy

  • Non-proxytypen: AWS en HTTP
  • Je configureert request- en response-transformaties
  • Aangestuurd door mappingtemplates
  • Templates in Velocity Template Language (VTL)

 

API-integratietypen

Toepassingen ontwikkelen op AWS

Requestvalidatie

 

request validatie

  • Valideer requests vóór ze de back-end bereiken
  • Vangt ontbrekende verplichte velden
  • Vangt ongeldige JSON-indeling
  • Vangt onjuiste parametertypen
  • Fouten geven meestal 400 Bad Request
Toepassingen ontwikkelen op AWS

Requestvalidatie

 

request validatie

  • Validatie kan omvatten:
    • Headers
    • Querystringparameters
    • Requestbody
    • JSON-schema
Toepassingen ontwikkelen op AWS

Requestvalidatie

 

request validatie

  • Validatie loont door:
    • Minder ongeldige back-endrequests
    • Lagere Lambda-uitvoeringskosten
    • Betrouwbaardere API's
Toepassingen ontwikkelen op AWS

Transformaties

  • Vorm requests en responses om zonder back-endcode aan te passen
    • Wijzig payload-structuur
    • Hernoem velden
    • Transformeer headers
    • Converteer dataformaten
    • Verberg implementatiedetails
  • Aangedreven door VTL-mappingtemplates

 

API-transformatie

Toepassingen ontwikkelen op AWS

Fouten afhandelen

 

API-fouten

  • Twee foutcategorieën
    • Gatewayfouten: opgewekt door API Gateway
    • Integratiefouten: back-endstoringen
  • Veelvoorkomende gatewayfouten:
    • 400 Bad Request: requestvalidatie mislukt
    • 429 Too Many Requests: throttlinglimiet overschreden
Toepassingen ontwikkelen op AWS

Fouten afhandelen

 

API-fouten

  • Veelvoorkomende integratiefouten:
    • 502 Bad Gateway: onjuiste of kapotte response
    • 503 Service Unavailable: back-end niet beschikbaar of overbelast
    • 504 Gateway Timeout: 29-seconden-time-out overschreden
    • Regionale en Private REST-API's kunnen langer dan 29 seconden gaan
Toepassingen ontwikkelen op AWS

Logging

  • Uitvoeringslogs en CloudWatch-metrics zijn cruciale troubleshootingtools
  • API Gateway integreert met CloudWatch voor:
    • Logs
    • Metrics
    • Execution tracing

 

 

API-observability

Toepassingen ontwikkelen op AWS

Logging

  • CloudWatch-logs helpen bij het oplossen van:
    • Mislukte integraties
    • Transformatiefouten
    • Autorisatiefouten
    • Lambda-uitvoeringsproblemen

 

 

API-observability

Toepassingen ontwikkelen op AWS

Stages: API's beheren over omgevingen heen

 

Stages

  • Eén API-definitie bedient meerdere omgevingen
  • Stages zijn hoe API Gateway die omgevingen beheert
Toepassingen ontwikkelen op AWS

Stages: API's beheren over omgevingen heen

 

Stages

  • Eén API-definitie bedient meerdere omgevingen
  • Stages zijn hoe API Gateway die omgevingen beheert
  • Een stage is een benoemde referentie
  • Verwijst naar een deployment-snapshot van je API-config
Toepassingen ontwikkelen op AWS

Stages: API's beheren over omgevingen heen

 

Stages

  • Eén API-definitie bedient meerdere omgevingen
  • Stages zijn hoe API Gateway die omgevingen beheert
  • Een stage is een benoemde referentie
  • Verwijst naar een deployment-snapshot van je API-config
  • Veelvoorkomende stagenamen:
    • Dev
    • Test
    • QA en Prod
Toepassingen ontwikkelen op AWS

Stages: API's beheren over omgevingen heen

 

Stages

  • Eén API-definitie bedient meerdere omgevingen
  • Stages zijn hoe API Gateway die omgevingen beheert
  • Een stage is een benoemde referentie
  • Verwijst naar een deployment-snapshot van je API-config
  • Veelvoorkomende stagenamen: Dev, Test, QA, Prod
  • De invoke-URL verschilt per stage
Toepassingen ontwikkelen op AWS

Stages: API's beheren over omgevingen heen

 

Stages

  • Eén API-definitie bedient meerdere omgevingen
  • Stages zijn hoe API Gateway die omgevingen beheert
  • Een stage is een benoemde referentie
  • Verwijst naar een deployment-snapshot van je API-config
  • Veelvoorkomende stagenamen: Dev, Test, QA, Prod
  • De invoke-URL verschilt per stage
  • Meerdere stages kunnen naar één deployment wijzen voor directe rollback
Toepassingen ontwikkelen op AWS

Stages: API's beheren over omgevingen heen

 

Stages

  • Wijzigingen gaan pas live na deployment naar een stage
Toepassingen ontwikkelen op AWS

Stage-mogelijkheden

  • Elke stage configureer je apart
  • Configuratie bevat stagevariabelen
  • Stagevariabelen zijn key-valueparen
  • Leid één deployment naar verschillende back-ends
  • Geen redeployment nodig bij omgevingswijzigingen

 

stage

Toepassingen ontwikkelen op AWS

Stage-mogelijkheden

  • Canary-deployments
    • Alleen REST-API's
    • Stuur een percentage verkeer naar een nieuwe deployment
    • Promoveer naar volledige release
    • Verwijder de canary om terug te draaien

 

stage

Toepassingen ontwikkelen op AWS

Stage-mogelijkheden

  • Throttling
    • Ingesteld op stageniveau
    • Geldt voor alle methoden, met per-methode-overrides

 

stage

Toepassingen ontwikkelen op AWS

Stage-mogelijkheden

  • Throttling
    • Ingesteld op stageniveau
    • Geldt voor alle methoden, met per-methode-overrides
  • Caching
    • Alleen REST-API's
    • Slaat back-endresponses op per stage
    • Clients omzeilen met Cache-Control
    • TTL van 0 tot 3600 seconden, standaard 300

 

stage

Toepassingen ontwikkelen op AWS

Stage-mogelijkheden

  • Logging biedt twee modi
    • Access logs
    • Gebouwd uit $context-variabelen, naar een CloudWatch-loggroep
    • Execution logs
    • Leggen volledige request- en response-details vast

 

stage

Toepassingen ontwikkelen op AWS

Laten we oefenen!

Toepassingen ontwikkelen op AWS

Preparing Video For Download...