Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

Repository files navigation

Workout API

API em FastAPI com MongoDB.

Requisitos

  • Python 3.12+
  • (Opcional) Docker + Docker Compose

Configuração

Crie o arquivo .env a partir do exemplo:

# Linux/macOS
cp infrastructure/.example.env infrastructure/.env
# Windows (PowerShell)
Copy-Item infrastructure/.example.env infrastructure/.env

Variáveis esperadas:

  • MONGO_URI
  • MONGO_DB_NAME
  • JWT_SECRET
  • JWT_EXPIRE_MINUTES

Se for rodar fora do Docker, ajuste MONGO_URI para mongodb://localhost:27017.

Rodando com Docker

cd infrastructure
docker compose up --build

API: http://localhost:8000

Seeds (popular o banco)

A 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.seed

Endpoints

Geral

  • GET /health → status da API
  • GET /docs → Swagger UI
  • GET /openapi.json → OpenAPI

Workouts

  • POST /api/workouts/ → criar workout
  • GET /api/workouts/ → listar workouts
  • GET /api/workouts/{workout_id} → buscar workout por ID
  • PATCH /api/workouts/{workout_id} → atualizar workout
  • DELETE /api/workouts/{workout_id} → remover workout

Training Plans

  • POST /api/training-plans/ → criar plano de treino
  • GET /api/training-plans/ → listar planos de treino
  • GET /api/training-plans/{plan_id} → buscar plano por ID
  • PATCH /api/training-plans/{plan_id} → atualizar plano
  • DELETE /api/training-plans/{plan_id} → remover plano

Testando com Bruno

O repositório inclui uma collection do Bruno em test/collection/ com requisições prontas para todos os endpoints.

Para usar:

  1. Instale o Bruno em usebruno.com
  2. Abra o Bruno e clique em Open Collection
  3. Selecione a pasta test/collection/
  4. Execute as requisições com a API rodando em http://localhost:8000

Referências

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages