2025-10-03 23:16:47 -06:00
2025-10-22 19:07:48 -06:00
2025-10-03 23:16:47 -06:00
2025-10-03 23:16:47 -06:00
2025-10-22 19:07:48 -06:00

EFC Microservice

Microservicio desarrollado con FastAPI y Celery para la gestión y procesamiento de pedimentos, partidas, remesas, acuses, coves y edocs en operaciones aduaneras.

Características

  • API RESTful con FastAPI
  • Procesamiento asíncrono de tareas con Celery y Redis
  • Seguimiento de estado de tareas (submitted, processing, completed, failed)
  • Validación de datos con Pydantic
  • Documentación automática con Swagger UI
  • Operaciones CRUD y endpoints especializados por módulo
  • Integración con servicios externos (SOAP, VUCEM)
  • Registro y actualización de tareas vía endpoints /tasks/tasks/

Instalación

  1. Crear un entorno virtual:

    python -m venv venv
    source venv/bin/activate  # En Linux/Mac
    # o
    venv\Scripts\activate     # En Windows
    
  2. Instalar dependencias:

    pip install -r requirements.txt
    
  3. Configurar variables de entorno en .env (ver ejemplo en core/config.py).

Ejecutar el microservicio

uvicorn main:app --host 0.0.0.0 --port 8000 --reload

Para ejecutar los workers de Celery:

celery -A celery_app.celery_app worker --loglevel=info

Documentación API

Endpoints principales (api/api_v2)

Pedimentos

  • POST /api/v2/services/pedimento/ - Procesar pedimento completo
  • POST /api/v2/services/pedimento/partidas/ - Procesar partidas de pedimento
  • POST /api/v2/services/pedimento/remesas/ - Procesar remesas de pedimento

Acuses

  • POST /api/v2/services/acuse/ - Procesar acuse de pedimento
  • POST /api/v2/services/acuse/cove/ - Procesar acuse de COVE

Coves

  • POST /api/v2/services/cove/ - Procesar COVE

Edocs

  • POST /api/v2/services/edoc/ - Procesar E-Document

Estado de tareas

  • GET /api/v1/tasks/tasks/{task_id}/ - Consultar estado de una tarea

Ejemplo de uso

Procesar un pedimento

curl -X POST "http://localhost:8000/api/v2/services/pedimento/" \
     -H "Content-Type: application/json" \
     -d '{ ... }'

Consultar estado de una tarea

curl -X GET "http://localhost:8000/api/v1/tasks/tasks/{task_id}/"

Estructura del proyecto

microservice/
├── api/
│   └── api_v2/
│       ├── modules/
│       │   ├── pedimentos/
│       │   ├── partidas/
│       │   ├── remesas/
│       │   ├── acuses/
│       │   ├── coves/
│       │   └── edocs/
│       └── tasks/
├── core/
│   └── config.py
├── celery_app.py
├── main.py
├── requirements.txt
└── README.md

Modelo de datos (ejemplo pedimento)

{
  "pedimento_app": "string",
  "organizacion_id": "string",
  "partidas": [ ... ],
  "remesas": [ ... ]
}

Notas

  • Cada endpoint retorna un task_id para consultar el estado de procesamiento.
  • El seguimiento de tareas se realiza vía los endpoints /tasks/tasks/.
  • Los estados posibles son: submitted, processing, completed, failed.

Description
Repositorio para microservice que interactua con WS de VU
Readme 552 KiB
Languages
Python 99.6%
Dockerfile 0.4%