API's bouwen met Amazon API Gateway

Applicaties implementeren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Drie clients, één backend

  • Web, mobiel en een partner roepen één backend aan
  • Elk spreekt een iets ander formaat
  • Een voordeur valideert en transformeert elke aanroep

 

Drie clienttypen die via één API Gateway verbinden die verzoeken naar backendservices routeert

Applicaties implementeren op AWS

Wat API Gateway doet

API Gateway als beheerde voordeur: web- en mobiele clients gaan via één centrale gateway met routing, auth, throttling en transformatie naar Lambda, HTTP-eindpunten en AWS-services

  • Een volledig beheerde voordeur voor je API's
  • Regelt routing, auth, throttling en transformatie
  • Zit tussen clients en je backend
  • Backends: Lambda, HTTP-eindpunten of AWS-services
Applicaties implementeren op AWS

Integratietypen

  • Lambda proxy: geeft het hele verzoek door aan Lambda
  • Lambda non-proxy: je mappt request- en responsevelden
  • HTTP: forwardt naar een HTTP-backend
  • MOCK: retourneert een response zonder backend

Vier API Gateway-integratietypen: Lambda proxy die het volledige verzoek doorgeeft, Lambda non-proxy met mapping-templates, HTTP die doorstuurt naar een eindpunt, en MOCK die een statische response teruggeeft

Applicaties implementeren op AWS

Transformaties van request en response

  • Mapping-templates vormen payloads om met VTL
  • Velocity Template Language transformeert body, headers, params
  • Request-mapping: clientformaat naar backendformaat
  • Response-mapping: backendformaat naar clientformaat

VTL-mappingtemplate-flow: client-payload getransformeerd door request-template vóór de backend, daarna backend-response getransformeerd door response-template vóór terugkeer naar de client

Applicaties implementeren op AWS

Request-validatie

Request-validatiemodi: valideer body tegen JSON-schema, valideer vereiste query- en headerparameters, of valideer beide vóór de Lambda-backend wordt aangeroepen

  • Wijs slechte input af voordat die de backend bereikt
  • Vereiste parameters: headers, querystrings, paden
  • Modelschema's: valideer de vorm van de JSON-body
  • Valideer body, parameters, of allebei
Applicaties implementeren op AWS

Statuscodes en foutcontracten

  • Overschrijf backend-statuscodes voor een consistent contract
  • Map een backend 502 naar een nette 503 voor clients
  • Gateway-responses: pas de foutbodies aan
  • Clients krijgen voorspelbare fouten, los van de backend

Volledige API Gateway-verzoeklevenscyclus: validatie wijst slechte input aan de poort af, mapping-template vormt geldige input om voor de backend, response-template formatteert de output tot een consistent clientcontract

Applicaties implementeren op AWS

Alles bij elkaar

  • Clientverzoek → validatie → transformatie → backend
  • Slechte input aan de poort afgewezen
  • Goede input omgevormd voor de backend
  • Backendresponse omgevormd tot het clientcontract

Volledige API Gateway-verzoeklevenscyclus: validatie wijst slechte input aan de poort af, mapping-template vormt geldige input om voor de backend, response-template formatteert de output tot een consistent clientcontract

Applicaties implementeren op AWS

Laten we oefenen!

Applicaties implementeren op AWS

Preparing Video For Download...