Criando APIs com Amazon API Gateway

Implantando Aplicações na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Três clientes, um backend

  • Web, mobile e um parceiro chamam um único backend
  • Cada um fala um formato um pouco diferente
  • Uma porta de entrada valida e transforma cada chamada

 

Três tipos de cliente conectando por um único API Gateway que encaminha requisições para serviços de backend

Implantando Aplicações na AWS

O que o API Gateway faz

API Gateway como porta de entrada gerenciada: clientes web e mobile passam por um gateway central com roteamento, auth, throttling e transformações para Lambda, endpoints HTTP e serviços AWS

  • Uma porta de entrada totalmente gerenciada para suas APIs
  • Lida com roteamento, auth, throttling e transformação
  • Fica entre os clientes e seu backend
  • Backends: Lambda, endpoints HTTP ou serviços AWS
Implantando Aplicações na AWS

Tipos de integração

  • Lambda proxy: passa a requisição inteira para a Lambda
  • Lambda non-proxy: você mapeia campos de request e response
  • HTTP: encaminha para um backend HTTP
  • MOCK: retorna uma resposta sem backend

Quatro tipos de integração do API Gateway: Lambda proxy passando a requisição completa, Lambda non-proxy usando templates de mapeamento, HTTP encaminhando para um endpoint e MOCK retornando uma resposta estática

Implantando Aplicações na AWS

Transformações de request e response

  • Mapping templates remodelam payloads com VTL
  • Velocity Template Language transforma body, headers e params
  • Request mapping: formato do cliente para o backend
  • Response mapping: formato do backend para o cliente

Fluxo de template VTL: payload do cliente transformado pelo template de request antes do backend; resposta do backend transformada pelo template de response antes de voltar ao cliente

Implantando Aplicações na AWS

Validação de requests

Modos de validação de request: validar body com JSON Schema, validar parâmetros obrigatórios de query e header, ou validar ambos antes de invocar a Lambda de backend

  • Rejeite entradas inválidas antes de chegar ao backend
  • Parâmetros obrigatórios: headers, query strings, paths
  • Model schemas: validam o formato do corpo JSON
  • Valide body, parâmetros ou ambos
Implantando Aplicações na AWS

Códigos de status e contratos de erro

  • Substitua status do backend para um contrato consistente
  • Mapeie um 502 do backend para um 503 limpo para clientes
  • Gateway responses: personalize corpos de erro
  • Clientes recebem erros previsíveis, independente do backend

Ciclo completo de uma request no API Gateway: validação barra entradas ruins no início, template de mapeamento remodela a entrada válida para o backend, template de resposta formata a saída em um contrato consistente para o cliente

Implantando Aplicações na AWS

Juntando tudo

  • Requisição do cliente → validação → transformação → backend
  • Entrada ruim é rejeitada no portão
  • Entrada válida é remodelada para o backend
  • Resposta do backend é ajustada ao contrato do cliente

Ciclo completo de uma request no API Gateway: validação barra entradas ruins no início, template de mapeamento remodela a entrada válida para o backend, template de resposta formata a saída em um contrato consistente para o cliente

Implantando Aplicações na AWS

Vamos praticar!

Implantando Aplicações na AWS

Preparing Video For Download...