Vývoj API

Developing Applications on AWS

Ricardo Sueiras

Principal Technologist

Integrace API Gateway

 

Integrace API Gateway

  • Více možností integrace back-endu
  • HTTP: libovolný veřejně dostupný endpoint
  • AWS service APIs jako DynamoDB nebo SNS
  • Lambda funkce
  • Privátní zdroje přes VPC links
  • Mock odpovědi bez skutečného back-endu
Developing Applications on AWS

Typy integrace: proxy

 

Typy integrace API

  • Typ integrace určuje míru kontroly API Gateway
  • Proxy typy: AWS_PROXY a HTTP_PROXY
  • Celý HTTP požadavek je předán přímo back-endu
  • API Gateway funguje jako transparentní průchodní vrstva
  • Odpověď sestavuje back-end
Developing Applications on AWS

Typy integrace: non-proxy

  • Non-proxy typy: AWS a HTTP
  • Sám/sama konfiguruješ transformace požadavků a odpovědí
  • Řízeno mapovacími šablonami
  • Šablony psané ve Velocity Template Language (VTL)

 

Typy integrace API

Developing Applications on AWS

Validace požadavků

 

Validace požadavků

  • Validace požadavků ještě před dosažením back-endu
  • Zachytí chybějící povinná pole
  • Zachytí neplatný formát JSON
  • Zachytí nesprávné typy parametrů
  • Chyby obvykle vrátí 400 Bad Request
Developing Applications on AWS

Validace požadavků

 

Validace požadavků

  • Validace může pokrývat:
    • Hlavičky
    • Parametry query stringu
    • Tělo požadavku
    • JSON schema
Developing Applications on AWS

Validace požadavků

 

Validace požadavků

  • Validace se vyplatí, protože:
    • Snižuje počet neplatných požadavků na back-end
    • Snižuje náklady na spouštění Lambda
    • Zvyšuje spolehlivost API
Developing Applications on AWS

Transformace

  • Úprava požadavků a odpovědí bez zásahu do kódu back-endu
    • Změna struktury payloadu
    • Přejmenování polí
    • Transformace hlaviček
    • Konverze datových formátů
    • Skrytí implementačních detailů
  • Poháněno VTL mapovacími šablonami

 

Transformace API

Developing Applications on AWS

Zpracování chyb

 

Chyby API

  • Dvě kategorie chyb
    • Chyby brány: vyvolané API Gateway
    • Integrační chyby: selhání back-endu
  • Časté chyby brány:
    • 400 Bad Request: neúspěšná validace požadavku
    • 429 Too Many Requests: překročen limit throttlingu
Developing Applications on AWS

Zpracování chyb

 

Chyby API

  • Časté integrační chyby:
    • 502 Bad Gateway: chybně formátovaná nebo neplatná odpověď
    • 503 Service Unavailable: back-end nedostupný nebo přetížený
    • 504 Gateway Timeout: překročen 29sekundový timeout
    • Regionální a privátní REST API mohou timeout prodloužit
Developing Applications on AWS

Logování

  • Protokoly spuštění a metriky CloudWatch jsou klíčové nástroje pro ladění
  • API Gateway se integruje s CloudWatch pro:
    • Logy
    • Metriky
    • Trasování spuštění

 

 

Observabilita API

Developing Applications on AWS

Logování

  • Logy CloudWatch pomáhají řešit:
    • Selhání integrací
    • Chyby transformací
    • Selhání autorizace
    • Problémy se spouštěním Lambda

 

 

Observabilita API

Developing Applications on AWS

Stage: správa API napříč prostředími

 

Stage prostředí

  • Jedna definice API slouží více prostředím
  • Stage jsou způsob, jak API Gateway tato prostředí spravuje
Developing Applications on AWS

Stage: správa API napříč prostředími

 

Stage prostředí

  • Jedna definice API slouží více prostředím
  • Stage jsou způsob, jak API Gateway tato prostředí spravuje
  • Stage je pojmenovaný odkaz
  • Odkazuje na snímek nasazení konfigurace API
Developing Applications on AWS

Stage: správa API napříč prostředími

 

Stage prostředí

  • Jedna definice API slouží více prostředím
  • Stage jsou způsob, jak API Gateway tato prostředí spravuje
  • Stage je pojmenovaný odkaz
  • Odkazuje na snímek nasazení konfigurace API
  • Běžné názvy stage:
    • Dev
    • Test
    • QA a Prod
Developing Applications on AWS

Stage: správa API napříč prostředími

 

Stage prostředí

  • Jedna definice API slouží více prostředím
  • Stage jsou způsob, jak API Gateway tato prostředí spravuje
  • Stage je pojmenovaný odkaz
  • Odkazuje na snímek nasazení konfigurace API
  • Běžné názvy stage: Dev, Test, QA, Prod
  • Invoke URL odráží každou stage
Developing Applications on AWS

Stage: správa API napříč prostředími

 

Stage prostředí

  • Jedna definice API slouží více prostředím
  • Stage jsou způsob, jak API Gateway tato prostředí spravuje
  • Stage je pojmenovaný odkaz
  • Odkazuje na snímek nasazení konfigurace API
  • Běžné názvy stage: Dev, Test, QA, Prod
  • Invoke URL odráží každou stage
  • Více stage může ukazovat na jedno nasazení pro okamžitý rollback
Developing Applications on AWS

Stage: správa API napříč prostředími

 

Stage prostředí

  • Změny se projeví až po nasazení do stage
Developing Applications on AWS

Možnosti stage

  • Každá stage se konfiguruje samostatně
  • Konfigurace zahrnuje proměnné stage
  • Proměnné stage jsou páry klíč–hodnota
  • Jedno nasazení lze směrovat na různé back-endy
  • Změna prostředí nevyžaduje nové nasazení

 

stage

Developing Applications on AWS

Možnosti stage

  • Canary nasazení
    • Pouze pro REST API
    • Přesměruje procento provozu na nové nasazení
    • Možnost povýšit na plné nasazení
    • Smazání canary provede rollback

 

stage

Developing Applications on AWS

Možnosti stage

  • Throttling
    • Nastavuje se na úrovni stage
    • Platí pro všechny metody, s přepsáním na úrovni konkrétní metody

 

stage

Developing Applications on AWS

Možnosti stage

  • Throttling
    • Nastavuje se na úrovni stage
    • Platí pro všechny metody, s přepsáním na úrovni konkrétní metody
  • Caching
    • Pouze pro REST API
    • Ukládá odpovědi back-endu na úrovni stage
    • Klienti mohou obejít pomocí Cache-Control
    • TTL od 0 do 3600 sekund, výchozí hodnota 300

 

stage

Developing Applications on AWS

Možnosti stage

  • Logování nabízí dva režimy
    • Access logy
    • Sestaveny z proměnných $context, odesílány do skupiny logů CloudWatch
    • Execution logy
    • Zachycují úplný detail požadavku a odpovědi

 

stage

Developing Applications on AWS

Pojďme cvičit!

Developing Applications on AWS

Preparing Video For Download...