Tvorba API s Amazon API Gateway

Nasazování aplikací na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Tři klienti, jeden backend

  • Web, mobilní aplikace i partner volají jeden backend
  • Každý mluví trochu jiným formátem
  • Přední brána ověří a transformuje každého volajícího

 

Tři typy klientů připojujících se přes jedno API Gateway, které směruje požadavky na backendové služby

Nasazování aplikací na AWS

Co dělá API Gateway

API Gateway jako spravovaná přední brána: weboví a mobilní klienti směřují přes centrální gateway s funkcemi směrování, autorizace, throttlingu a transformace na Lambda, HTTP endpointy a AWS služby

  • Plně spravovaná přední brána pro tvoje API
  • Zajišťuje směrování, autorizaci, throttling a transformaci
  • Stojí mezi klienty a tvým backendem
  • Backendy: Lambda, HTTP endpointy nebo AWS služby
Nasazování aplikací na AWS

Typy integrací

  • Lambda proxy: předá celý požadavek Lambdě
  • Lambda non-proxy: mapuješ pole požadavku i odpovědi
  • HTTP: přeposílá požadavky na HTTP backend
  • MOCK: vrací odpověď bez jakéhokoli backendu

Čtyři typy integrací API Gateway: Lambda proxy předává celý požadavek, Lambda non-proxy používá mapovací šablony, HTTP přeposílá na endpoint a MOCK vrací statickou odpověď

Nasazování aplikací na AWS

Transformace požadavků a odpovědí

  • Mapovací šablony přetvářejí payloady pomocí VTL
  • Velocity Template Language transformuje tělo, hlavičky a parametry
  • Mapování požadavku: formát klienta → formát backendu
  • Mapování odpovědi: formát backendu → formát klienta

Tok mapovací šablony VTL: payload klienta je transformován šablonou požadavku před odesláním na backend, poté je odpověď backendu transformována šablonou odpovědi před vrácením klientovi

Nasazování aplikací na AWS

Validace požadavků

Režimy validace požadavků: ověření těla proti JSON schématu, ověření povinných parametrů dotazu a hlaviček, nebo obojí – vše ještě před vyvoláním Lambda backendu

  • Odmítni špatný vstup dříve, než dosáhne backendu
  • Povinné parametry: hlavičky, query stringy, cesty
  • Schémata modelů: ověřují strukturu JSON těla
  • Ověřuj tělo, parametry nebo obojí
Nasazování aplikací na AWS

Stavové kódy a chybové kontrakty

  • Přepisuj stavové kódy backendu pro konzistentní kontrakt
  • Namapuj backendový 502 na čistý 503 pro klienty
  • Gateway responses: přizpůsob těla chybových zpráv
  • Klienti dostávají předvídatelné chyby bez ohledu na backend

Celý životní cyklus požadavku v API Gateway: validace odmítne špatný vstup na bráně, mapovací šablona přetvaruje platný vstup pro backend, šablona odpovědi formátuje výstup do konzistentního kontraktu pro klienta

Nasazování aplikací na AWS

Vše dohromady

  • Požadavek klienta → validace → transformace → backend
  • Špatný vstup odmítnut na bráně
  • Platný vstup přetvořen pro backend
  • Odpověď backendu přeformátována do klientského kontraktu

Celý životní cyklus požadavku v API Gateway: validace odmítne špatný vstup na bráně, mapovací šablona přetvaruje platný vstup pro backend, šablona odpovědi formátuje výstup do konzistentního kontraktu pro klienta

Nasazování aplikací na AWS

Pojďme cvičit!

Nasazování aplikací na AWS

Preparing Video For Download...