API em FastAPI com MongoDB.
- Python 3.12+
- (Opcional) Docker + Docker Compose
Crie o arquivo .env a partir do exemplo:
# Linux/macOS
cp infrastructure/.example.env infrastructure/.env# Windows (PowerShell)
Copy-Item infrastructure/.example.env infrastructure/.envVariáveis esperadas:
MONGO_URIMONGO_DB_NAMEJWT_SECRETJWT_EXPIRE_MINUTES
Se for rodar fora do Docker, ajuste MONGO_URI para mongodb://localhost:27017.
cd infrastructure
docker compose up --buildA pasta test/ fica na raiz do projeto e não é montada no container por padrão, por isso é necessário montá-la explicitamente:
# A partir de infrastructure/
docker compose run --rm -v ../test:/app/test:z workout-api uv run python -m test.seeds.seedGET /health→ status da APIGET /docs→ Swagger UIGET /openapi.json→ OpenAPI
POST /api/workouts/→ criar workoutGET /api/workouts/→ listar workoutsGET /api/workouts/{workout_id}→ buscar workout por IDPATCH /api/workouts/{workout_id}→ atualizar workoutDELETE /api/workouts/{workout_id}→ remover workout
POST /api/training-plans/→ criar plano de treinoGET /api/training-plans/→ listar planos de treinoGET /api/training-plans/{plan_id}→ buscar plano por IDPATCH /api/training-plans/{plan_id}→ atualizar planoDELETE /api/training-plans/{plan_id}→ remover plano
O repositório inclui uma collection do Bruno em test/collection/ com requisições prontas para todos os endpoints.
Para usar:
- Instale o Bruno em usebruno.com
- Abra o Bruno e clique em Open Collection
- Selecione a pasta
test/collection/ - Execute as requisições com a API rodando em
http://localhost:8000