APIs y contratos
Los backends FastAPI exponen OpenAPI en /docs y /openapi.json cuando el servicio está en ejecución.
Por aplicación
| App | Base (dev) | Puerto | OpenAPI |
|---|---|---|---|
| main | http://localhost:8000 |
8000 | /docs |
| travel | http://localhost:8001/api/v1 |
8001 | /docs |
| ai-orchestrator | http://localhost:8002/api/v1 |
8002 | /docs |
| tools | http://localhost:8010 |
8010 | /docs |
| gastro | stub | — | /docs |
Endpoints públicos vs protegidos (Travel API)
Referencia completa en apps/travel/backend/docs/ARCHITECTURE.md.
| Ruta | Auth | Consumidor principal |
|---|---|---|
GET /availability |
❌ Público | AI Orchestrator |
GET /knowledge/search |
❌ Público | AI Orchestrator |
GET /properties/{id}/context |
❌ Público | AI Orchestrator |
POST /reservations/public |
❌ Público | AI Orchestrator |
GET /reservations/by-code/{code} |
❌ Público | Huésped (link de consulta) |
CRUD /conversation-sessions |
❌ Público | AI Orchestrator |
CRUD /reservations |
🔒 JWT | Dashboard Travel |
CRUD /rooms |
🔒 JWT | Dashboard Travel |
CRUD /guests |
🔒 JWT | Dashboard Travel |
GET /room-types |
🔒 JWT | Dashboard Travel |
POST /auth/login |
❌ Público | Dashboard login |
AI Orchestrator — Endpoint único
| Método | Ruta | Descripción |
|---|---|---|
POST |
/api/v1/chat |
Recibe mensaje de WhatsApp (vía n8n), retorna respuesta + media |
Contrato detallado en docs/apps/AI_ORCHESTRATOR.md.
Práctica recomendada
- No commitear secretos; usar variables de entorno.
- Si se publica una API estable hacia terceros, anotar aquí la URL de producción y versión mayor.
Webhooks y sistemas externos
n8n y Evolution API no son parte del OpenAPI del monorepo: rutas y URLs de instancia se documentan en Notion (Interconexión del ecosistema) y en comentarios de infra/ cuando aplique.