Creare API con Amazon API Gateway

Distribuire applicazioni su AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Tre client, un backend

  • Web, mobile e un partner chiamano lo stesso backend
  • Ognuno parla un formato leggermente diverso
  • Una front door convalida e trasforma ogni chiamante

 

Tre tipi di client che si connettono tramite un unico API Gateway che instrada le richieste ai servizi di backend

Distribuire applicazioni su AWS

Cosa fa API Gateway

API Gateway come front door gestita: i client web e mobile passano da un gateway centrale con routing, auth, throttling e trasformazione verso Lambda, endpoint HTTP e servizi AWS

  • Una front door completamente gestita per le tue API
  • Gestisce routing, auth, throttling e trasformazioni
  • Sta tra i client e il tuo backend
  • Backend: Lambda, endpoint HTTP o servizi AWS
Distribuire applicazioni su AWS

Tipi di integrazione

  • Lambda proxy: passa l'intera richiesta a Lambda
  • Lambda non proxy: mappi campi di request e response
  • HTTP: inoltra a un backend HTTP
  • MOCK: restituisce una risposta senza backend

Quattro tipi di integrazione di API Gateway: Lambda proxy che passa l'intera richiesta, Lambda non proxy con mapping template, HTTP che inoltra a un endpoint e MOCK che restituisce una risposta statica

Distribuire applicazioni su AWS

Trasformazioni di request e response

  • I mapping template rimodellano i payload con VTL
  • Velocity Template Language trasforma body, header e parametri
  • Request mapping: da formato client a formato backend
  • Response mapping: da formato backend a formato client

Flusso dei mapping template VTL: il payload del client è trasformato dal template di request prima del backend, poi la risposta del backend è trasformata dal template di response prima di tornare al client

Distribuire applicazioni su AWS

Convalida delle richieste

Modalità di convalida della richiesta: convalida del body rispetto a uno schema JSON, convalida dei parametri obbligatori di query e header, o di entrambi prima dell'invocazione del backend Lambda

  • Rifiuta input errati prima che raggiungano il backend
  • Parametri obbligatori: header, query string, path
  • Model schema: convalida la struttura del body JSON
  • Convalida body, parametri o entrambi
Distribuire applicazioni su AWS

Codici di stato e contratti di errore

  • Sovrascrivi i codici di stato del backend per un contratto coerente
  • Mappa un 502 del backend in un pulito 503 per i client
  • Gateway responses: personalizza i body di errore
  • I client ricevono errori prevedibili a prescindere dal backend

Ciclo completo di una richiesta in API Gateway: la convalida blocca gli input errati all'ingresso, il mapping template rimodella l'input valido per il backend, il response template formatta l'output in un contratto coerente per il client

Distribuire applicazioni su AWS

Mettere tutto insieme

  • Richiesta client → convalida → trasformazione → backend
  • Input errati rifiutati all'ingresso
  • Input corretti rimodellati per il backend
  • Risposta del backend adattata al contratto col client

Ciclo completo di una richiesta in API Gateway: la convalida blocca gli input errati all'ingresso, il mapping template rimodella l'input valido per il backend, il response template formatta l'output in un contratto coerente per il client

Distribuire applicazioni su AWS

Esercitiamoci!

Distribuire applicazioni su AWS

Preparing Video For Download...