feat: autoayuno-api (FastAPI) — alimentos (OFF) y recetas

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Carlos Narro
2026-07-01 19:35:02 +02:00
commit 150a323a37
9 changed files with 369 additions and 0 deletions

28
README.md Normal file
View File

@@ -0,0 +1,28 @@
# autoayuno-api
Catálogo compartido de **alimentos** (alimentado de Open Food Facts bajo demanda)
y **recetas** publicables para la app [autoayuno]. Sin cuentas: publicar es
anónimo con un `deviceToken`. Lo personal del usuario vive en su dispositivo;
aquí solo lo compartido.
## Stack
FastAPI + SQLAlchemy + Postgres (SQLite como fallback en dev). Docker → Dokploy.
Dominio: `api-autoayuno.carlosnarro.com`.
## Endpoints
- `GET /health`
- `GET /foods?q=` — busca en la BD; si hay pocos, importa de Open Food Facts y guarda.
- `POST /foods` — alta anónima de un alimento (`source=user`).
- `GET /recipes?q=`, `GET /recipes/{id}`, `POST /recipes` — recetas públicas.
Las respuestas usan la forma que espera la app (`kcalPer100g`, `zone`, `portions`, `origin`).
## Desarrollo
```bash
pip install -r requirements.txt
uvicorn main:app --reload # SQLite local por defecto
pytest # tests con SQLite en memoria
```
## Producción (Dokploy)
Variable `DATABASE_URL` con el Postgres. Build por Dockerfile, puerto 8000.