API Gateway Universal
Conecta el bot a cualquier API externa con configuración mínima. Un solo lugar para gestionar todas tus integraciones.
Concepto
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Bot │ ──► │ API │ ──► │ APIs │
│ (Comando) │ │ Gateway │ │ Externas │
└─────────────┘ └─────────────┘ └─────────────┘
│
┌──────┴──────┐
│ • Auth │
│ • Cache │
│ • Rate Limit│
│ • Retry │
└─────────────┘
Comandos
Configurar APIs
# Agregar nueva API
api add weather
--base:https://api.openweathermap.org/data/2.5
--auth:query:appid:$WEATHER_API_KEY
# Agregar endpoint
api endpoint weather current
--path:/weather
--params:q,units
# Listar APIs configuradas
api list
Llamar APIs
# Llamar endpoint
api call weather current --q:"Mexico City" --units:metric
# Llamada directa con URL
api get https://api.example.com/data
# POST con body
api post https://api.example.com/create --body:'{"name":"test"}'
Gestión
# Ver estadísticas
api stats weather
# Ver logs
api logs --last:10
# Probar conexión
api test weather
Ejemplo: Configurar API del Clima
# apis/weather.yaml
name: weather
base_url: https://api.openweathermap.org/data/2.5
auth:
type: query
param: appid
value: ${WEATHER_API_KEY}
endpoints:
current:
path: /weather
method: GET
params:
- q: string # ciudad
- units: metric|imperial
cache: 10m
forecast:
path: /forecast
method: GET
params:
- q: string
- cnt: number # días
Uso después de configurar
Usuario: clima en "Ciudad de México"
Bot: 🌤️ Clima actual en Ciudad de México:
🌡️ Temperatura: 22°C
💧 Humedad: 45%
💨 Viento: 12 km/h
🌅 Sensación térmica: 24°C
Tipos de Autenticación
| Tipo | Ejemplo |
|---|
| API Key (Header) | Authorization: Bearer xxx |
| API Key (Query) | ?api_key=xxx |
| Basic Auth | username:password |
| OAuth 2.0 | Token refresh automático |
| Custom | Headers personalizados |
Funcionalidades
Caching
endpoints:
data:
cache: 15m # Cache de 15 minutos
Rate Limiting
rate_limit:
requests: 100
period: 1h
Retry Automático
retry:
attempts: 3
backoff: exponential
APIs Pre-configuradas
| API | Configuración |
|---|
| OpenWeather | WEATHER_API_KEY |
| GitHub | GITHUB_TOKEN |
| Slack | SLACK_TOKEN |
| Notion | NOTION_API_KEY |
| Discord | DISCORD_TOKEN |
Integración
- proactive-triggers: Llamar APIs en automatizaciones
- daily-digest: Obtener datos de múltiples APIs
- multi-agent: Los agentes pueden usar APIs configuradas