Files

api_gateway

Puerta de enlace HTTP (FastAPI) que actúa como punto de entrada único para el sistema IPSExtractor. Enruta las peticiones del cliente hacia los microservicios internos sin lógica de negocio propia.


Puerto

8189 en el host (mapeado al 8000 interno del contenedor). Es el único puerto publicado por docker-compose.


Enrutamiento

Ruta cliente Servicio destino Descripción
GET /health/live (local) Liveness sin consultar upstreams
GET /health Agrega /health de los tres servicios Estado del sistema
GET /models extraction:8001/models Modelos LLM disponibles
GET /config extraction:8001/config + cleaning:8002/rules Configuración
/extraction/{path} extraction:8001/{path} Extracción (quita prefijo)
/tasks/{path} extraction:8001/tasks/{path} Tareas de extracción
/jobs/{path} extraction:8001/jobs/{path} Jobs
/count-jobs/{path} extraction:8001/count-jobs/{path} Jobs de conteo
/cleaning/{path} cleaning:8002/{path} Limpieza
/count/{path} count-api:8080/{path} Conteo OCR+ML (quita prefijo)

El proxy reenvía método, query string, headers y body sin modificaciones. Timeouts: JSON 30s lectura; uploads /count/* e ingest 600s.


Variables de entorno

Variable Default Descripción
EXTRACTION_URL http://extraction:8001 URL interna del servicio extraction
CLEANING_URL http://cleaning:8002 URL interna del servicio cleaning
COUNT_URL http://count-api:8080 URL interna del servicio count-api

CORS

Solo permite orígenes localhost y 127.0.0.1. Sin autenticación.


Estructura del código

api/
  main.py     — FastAPI app con proxy HTTP (httpx)
Dockerfile
requirements.txt  — fastapi, httpx, uvicorn

Arrancar localmente

docker compose up --build api_gateway

API disponible en http://127.0.0.1:8189 (único puerto expuesto por docker-compose).