Desarrollo de APIs

Desarrollo de aplicaciones en AWS

Ricardo Sueiras

Principal Technologist

Integraciones de API Gateway

 

Integraciones de API Gateway

  • Varias opciones de integración de back-end
  • HTTP: cualquier endpoint público enrutable
  • APIs de servicios de AWS como DynamoDB o SNS
  • Funciones Lambda
  • Recursos privados vía enlaces VPC
  • Respuestas simuladas sin back-end real
Desarrollo de aplicaciones en AWS

Tipos de integración: proxy

 

Tipos de integración de API

  • El tipo de integración define cuánto controla API Gateway
  • Tipos proxy: AWS_PROXY y HTTP_PROXY
  • Se envía toda la solicitud HTTP directamente al back-end
  • API Gateway actúa como un paso transparente
  • El back-end construye la respuesta
Desarrollo de aplicaciones en AWS

Tipos de integración: no proxy

  • Tipos no proxy: AWS y HTTP
  • Tú configuras transformaciones de solicitud y respuesta
  • Impulsadas por plantillas de mapeo
  • Plantillas en Velocity Template Language (VTL)

 

Tipos de integración de API

Desarrollo de aplicaciones en AWS

Validación de solicitudes

 

validación de solicitudes

  • Valida solicitudes antes de llegar al back-end
  • Detecta campos obligatorios ausentes
  • Detecta formato JSON no válido
  • Detecta tipos de parámetros incorrectos
  • Suele devolver 400 Bad Request en fallos
Desarrollo de aplicaciones en AWS

Validación de solicitudes

 

validación de solicitudes

  • La validación puede abarcar:
    • Cabeceras
    • Parámetros de cadena de consulta
    • Cuerpo de la solicitud
    • Esquema JSON
Desarrollo de aplicaciones en AWS

Validación de solicitudes

 

validación de solicitudes

  • La validación aporta:
    • Menos solicitudes inválidas al back-end
    • Menor coste de ejecución de Lambda
    • Mayor fiabilidad de la API
Desarrollo de aplicaciones en AWS

Transformaciones

  • Reformatea solicitudes y respuestas sin tocar el back-end
    • Cambiar la estructura del payload
    • Renombrar campos
    • Transformar cabeceras
    • Convertir formatos de datos
    • Ocultar detalles de implementación
  • Basado en plantillas de mapeo VTL

 

Transformación de API

Desarrollo de aplicaciones en AWS

Gestión de errores

 

Errores de API

  • Dos categorías de error
    • Errores del gateway: generados por API Gateway
    • Errores de integración: fallos del back-end
  • Errores de gateway comunes:
    • 400 Bad Request: validación de solicitud fallida
    • 429 Too Many Requests: límite de throttling superado
Desarrollo de aplicaciones en AWS

Gestión de errores

 

Errores de API

  • Errores de integración comunes:
    • 502 Bad Gateway: respuesta malformada o errónea
    • 503 Service Unavailable: back-end no disponible o saturado
    • 504 Gateway Timeout: superado el tiempo de espera de 29 s
    • Las REST APIs Regional y Private pueden superar 29 s
Desarrollo de aplicaciones en AWS

Registro

  • Los registros de ejecución y métricas de CloudWatch son clave para depurar
  • API Gateway se integra con CloudWatch para:
    • Registros
    • Métricas
    • Trazas de ejecución

 

 

Observabilidad de API

Desarrollo de aplicaciones en AWS

Registro

  • Los registros de CloudWatch ayudan a diagnosticar:
    • Integraciones fallidas
    • Errores de transformación
    • Fallos de autorización
    • Problemas de ejecución de Lambda

 

 

Observabilidad de API

Desarrollo de aplicaciones en AWS

Fases: gestión entre entornos

 

Fases

  • Una definición de API sirve a varios entornos
  • Las fases son cómo API Gateway gestiona esos entornos
Desarrollo de aplicaciones en AWS

Fases: gestión entre entornos

 

Fases

  • Una definición de API sirve a varios entornos
  • Las fases son cómo API Gateway gestiona esos entornos
  • Una fase es una referencia con nombre
  • Apunta a una instantánea de despliegue de tu configuración de API
Desarrollo de aplicaciones en AWS

Fases: gestión entre entornos

 

Fases

  • Una definición de API sirve a varios entornos
  • Las fases son cómo API Gateway gestiona esos entornos
  • Una fase es una referencia con nombre
  • Apunta a una instantánea de despliegue de tu configuración de API
  • Nombres de fase habituales:
    • Dev
    • Test
    • QA y Prod
Desarrollo de aplicaciones en AWS

Fases: gestión entre entornos

 

Fases

  • Una definición de API sirve a varios entornos
  • Las fases son cómo API Gateway gestiona esos entornos
  • Una fase es una referencia con nombre
  • Apunta a una instantánea de despliegue de tu configuración de API
  • Nombres de fase habituales: Dev, Test, QA, Prod
  • La invoke URL refleja cada fase
Desarrollo de aplicaciones en AWS

Fases: gestión entre entornos

 

Fases

  • Una definición de API sirve a varios entornos
  • Las fases son cómo API Gateway gestiona esos entornos
  • Una fase es una referencia con nombre
  • Apunta a una instantánea de despliegue de tu configuración de API
  • Nombres de fase habituales: Dev, Test, QA, Prod
  • La invoke URL refleja cada fase
  • Varias fases pueden apuntar a un despliegue para rollback instantáneo
Desarrollo de aplicaciones en AWS

Fases: gestión entre entornos

 

Fases

  • Los cambios solo entran en vigor al desplegarse en una fase
Desarrollo de aplicaciones en AWS

Capacidades de las fases

  • Cada fase se configura de forma independiente
  • La configuración incluye variables de fase
  • Las variables de fase son pares clave-valor
  • Dirige un despliegue a distintos back-ends
  • Sin redespiegues para cambios de entorno

 

fase

Desarrollo de aplicaciones en AWS

Capacidades de las fases

  • Despliegues canario
    • Solo REST APIs
    • Envía un porcentaje del tráfico a un nuevo despliegue
    • Promoción a lanzamiento completo
    • Borra el canario para revertir

 

fase

Desarrollo de aplicaciones en AWS

Capacidades de las fases

  • Throttling
    • Se configura a nivel de fase
    • Se aplica a todos los métodos, con excepciones por método

 

fase

Desarrollo de aplicaciones en AWS

Capacidades de las fases

  • Throttling
    • Se configura a nivel de fase
    • Se aplica a todos los métodos, con excepciones por método
  • Caché
    • Solo REST APIs
    • Almacena respuestas del back-end en la fase
    • Los clientes lo omiten con Cache-Control
    • TTL de 0 a 3600 s, por defecto 300

 

fase

Desarrollo de aplicaciones en AWS

Capacidades de las fases

  • El registro ofrece dos modos
    • Registros de acceso
    • Construidos con variables $context, enviados a un grupo de logs de CloudWatch
    • Registros de ejecución
    • Capturan el detalle completo de solicitud y respuesta

 

fase

Desarrollo de aplicaciones en AWS

¡Vamos a practicar!

Desarrollo de aplicaciones en AWS

Preparing Video For Download...