Esta fase replica la base del backend del proyecto original con FastAPI:
- Endpoints REST en
/api/tasks - Modelo
Taskcon estadosCREATED,RUNNING,DONE - Persistencia con SQLAlchemy
- Pytest para testing
- Manejo de errores básico (
400y404) compatible con el formato anterior - Scheduler de estados (cada minuto):
CREATED->RUNNINGcuando supera 2 minutos desdecreated_atRUNNING->DONEcuando supera 8 minutos desdestarted_at
- Instalar dependencias:
uv sync --python <ruta_python_uv>
- Levantar API:
uv run --python <ruta_python_uv> uvicorn app.main:app --host 0.0.0.0 --port 8080 --reload
- Probar salud:
GET http://localhost:8080/health
- Puedes usar
DATABASE_URLdirecto (PostgreSQL o SQLite). - O activar
USE_POSTGRES=truey definir:DB_HOST,DB_PORT,DB_NAME,DB_USER,DB_PASSWORD
- También se aceptan aliases de Spring:
SPRING_DATASOURCE_URLSPRING_DATASOURCE_USERNAMESPRING_DATASOURCE_PASSWORD
SCHEDULER_ENABLED=true|falseSCHEDULER_INTERVAL_SECONDS=60TASK_CREATED_TO_RUNNING_MINUTES=2TASK_RUNNING_TO_DONE_MINUTES=8
Para el desarrollo de esta aplicación he trabajado con OpenCode como herramienta de apoyo. Lo he utilizado porque me ofrece soporte durante la implementación del proyecto, facilita el análisis del código y proporciona una forma flexible de trabajar sobre el desarrollo desde un entorno técnico orientado a terminal.