# Amazon API Gateway

> La puerta de entrada de tu API: recibe los pedidos y se los pasa a tu código.

- Nivel: Intermedio
- Temas: AWS
- URL: https://tidbit.legios.com.ar/es/amazon-api-gateway/
- En inglés: [Amazon API Gateway](https://tidbit.legios.com.ar/amazon-api-gateway/)

**Amazon API Gateway** le da a tu API una dirección pública en internet y se ocupa de todo lo que pasa antes de que corra tu código. Definís rutas como `GET /orders` o `POST /users`, le decís a dónde va cada una (casi siempre una función AWS Lambda, a veces un servidor u otro servicio de AWS), y él hace el resto.

'El resto' es bastante: servir por HTTPS, verificar API keys o tokens de login (se integra directo con Amazon Cognito), limitar cuántos pedidos por segundo puede hacer cada cliente, cachear respuestas, registrar cada llamada en Amazon CloudWatch, e incluso mantener conexiones WebSocket abiertas y convertir sus mensajes en eventos para tu código.

Ejemplo: una app móvil llama a `https://api.ejemplo.com/orders`. API Gateway recibe el pedido, verifica el token del usuario, lo rechaza si ese cliente ya pasó su cuota, y si no invoca una función Lambda con el cuerpo del pedido. La función devuelve JSON y el gateway se lo manda al celular. Nunca hubo que levantar un servidor.

Junto con Lambda y Amazon DynamoDB es la receta clásica de un backend Serverless: pagás por pedido, y escala de cero a millones de llamadas sin que toques nada.

## Una analogía

La recepción de un edificio de oficinas. Las visitas no suben directo a un escritorio: la recepcionista pide documento, limita cuántas personas suben a la vez y le indica a cada una qué puerta buscar.

## Para quedarse

- Definís rutas y apuntás cada una a Lambda, a un servidor o a un servicio de AWS.
- Autenticación, límites de uso, caché y logs ocurren antes de que corra tu código.
- Dos variantes: HTTP APIs (más simples y baratas) y REST APIs (más funciones).
- Se cobra por millón de pedidos; no hay nada corriendo ni pagando cuando nadie llama.

## Para seguir leyendo

- [¿Qué es Amazon API Gateway? (documentación oficial)](https://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/welcome.html)
- [Página de Amazon API Gateway](https://aws.amazon.com/es/api-gateway/)

## Términos relacionados

- [API](https://tidbit.legios.com.ar/es/api/): El menú de cosas que un programa le deja pedir a otro programa.
- [Internet](https://tidbit.legios.com.ar/es/internet/): Una red mundial de redes que conecta cualquier aparato con cualquier otro.
- [AWS Lambda](https://tidbit.legios.com.ar/es/aws-lambda/): Correr un pedazo de código solo cuando pasa algo, sin ningún servidor que administrar.
- [Servidor](https://tidbit.legios.com.ar/es/server/): Una computadora cuyo trabajo es responder pedidos de otras computadoras, todo el día.
- [HTTPS](https://tidbit.legios.com.ar/es/https/): El candadito del navegador: tráfico web que nadie en el medio puede leer.
- [Clave de API](https://tidbit.legios.com.ar/es/api-key/): Un texto secreto que identifica a tu app cuando llama a la API de otro.
- [Token](https://tidbit.legios.com.ar/es/token/): El pedacito de texto que un modelo de lenguaje realmente lee.
- [Amazon Cognito](https://tidbit.legios.com.ar/es/amazon-cognito/): Registro, login y contraseñas de tu app, a cargo de AWS y no tuyo.
