Crear APIs con Amazon API Gateway

Implementación de aplicaciones en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Tres clientes, un backend

  • Web, móvil y un partner llaman al mismo backend
  • Cada uno usa un formato ligeramente distinto
  • Una «puerta de entrada» valida y transforma todas las llamadas

 

Tres tipos de cliente conectan mediante un único API Gateway que enruta solicitudes a servicios de backend

Implementación de aplicaciones en AWS

Qué hace API Gateway

API Gateway como puerta de entrada gestionada: clientes web y móviles pasan por un gateway central con enrutado, auth, limitación y transformación hacia Lambda, endpoints HTTP y servicios de AWS

  • Una puerta de entrada totalmente gestionada para tus APIs
  • Gestiona enrutado, auth, limitación y transformación
  • Se sitúa entre los clientes y tu backend
  • Backends: Lambda, endpoints HTTP o servicios de AWS
Implementación de aplicaciones en AWS

Tipos de integración

  • Lambda proxy: pasa toda la solicitud a Lambda
  • Lambda non-proxy: mapeas campos de solicitud y respuesta
  • HTTP: reenvía a un backend HTTP
  • MOCK: devuelve una respuesta sin backend

Cuatro tipos de integración de API Gateway: Lambda proxy que pasa la solicitud completa, Lambda non-proxy con plantillas de mapeo, HTTP reenviando a un endpoint y MOCK devolviendo una respuesta estática

Implementación de aplicaciones en AWS

Transformaciones de solicitud y respuesta

  • Mapping templates remodelan cargas con VTL
  • Velocity Template Language transforma body, headers y params
  • Request mapping: de formato cliente a formato backend
  • Response mapping: de formato backend a formato cliente

Flujo de plantillas VTL: la carga del cliente se transforma por la plantilla de solicitud antes del backend; luego la respuesta del backend se transforma por la plantilla de respuesta antes de volver al cliente

Implementación de aplicaciones en AWS

Validación de solicitudes

Modos de validación de solicitudes: validar body con esquema JSON, validar parámetros requeridos de consulta y cabeceras, o validar ambos antes de invocar el backend Lambda

  • Rechaza entradas inválidas antes de llegar al backend
  • Parámetros requeridos: headers, query strings, paths
  • Model schemas: valida la forma del cuerpo JSON
  • Valida body, parámetros o ambos
Implementación de aplicaciones en AWS

Códigos de estado y contratos de error

  • Sobrescribe códigos de estado del backend para un contrato consistente
  • Mapea un 502 del backend a un 503 limpio para clientes
  • Gateway responses: personaliza cuerpos de error
  • Los clientes reciben errores previsibles sin importar el backend

Ciclo completo de una solicitud en API Gateway: la validación rechaza entradas inválidas a la entrada, la plantilla de mapeo remodela la entrada válida para el backend y la plantilla de respuesta da formato a la salida en un contrato consistente para el cliente

Implementación de aplicaciones en AWS

Con todo junto

  • Solicitud del cliente → validación → transformación → backend
  • Las entradas inválidas se rechazan en la puerta
  • Las válidas se remodelan para el backend
  • La respuesta del backend se ajusta al contrato del cliente

Ciclo completo de una solicitud en API Gateway: la validación rechaza entradas inválidas a la entrada, la plantilla de mapeo remodela la entrada válida para el backend y la plantilla de respuesta da formato a la salida en un contrato consistente para el cliente

Implementación de aplicaciones en AWS

¡Vamos a practicar!

Implementación de aplicaciones en AWS

Preparing Video For Download...