Uma API RESTful desenvolvida em Python + FastAPI para gerenciamento
de atletas, centros de treinamento e categorias esportivas.
Projetada para ser simples, moderna e escalável --- ideal para estudos,
testes técnicos e projetos reais.
- Visão Geral
- Arquitetura
- Tecnologias
- Instalação e Execução
- Rodando com Docker
- Estrutura do Projeto
- Rotas Principais
- Migrações com Alembic
- Testes
- Contribuição
- Licença
A Workout API permite: - Cadastro e listagem de Atletas - Gerenciamento de Centros de Treinamento - Controle de Categorias Esportivas - Uso de SQLAlchemy ORM - Migrações com Alembic - Servidor moderno e rápido com FastAPI + Uvicorn
Ideal para: - Estudos de back-end com Python - Bootcamps e portfólio - Projetos voluntários e testes técnicos
A API segue princípios modernos: - Estrutura modular - Pastas divididas por domínio - Versionamento e migrações do banco - Separação clara entre modelo, schema e rotas - Testes automatizados
- Python 3.12+
- FastAPI
- Uvicorn
- SQLAlchemy
- Alembic
- Pydantic
- Docker & Docker‑Compose
- Pytest
git clone https://github.com/estevaoMG/workout-api.git
cd workout-apipython3 -m venv venv
source venv/bin/activatepip install -r requirements.txtuvicorn main:app --reloadAcesse:
👉 **http://localhost:8000**\
👉 Documentação automática: /docs ou /redoc
docker-compose up --builddocker-compose exec app alembic upgrade headworkout-api/
│ main.py
│ requirements.txt
│ docker-compose.yml
│
├── atleta/
│ ├── models.py
│ ├── schemas.py
│ └── router.py
│
├── centro_treinamento/
│ ├── models.py
│ ├── schemas.py
│ └── router.py
│
├── categorias/
│ ├── models.py
│ ├── schemas.py
│ └── router.py
│
├── alembic/
│ └── versions/
│
└── configs/
├── database.py
└── settings.py
Método Rota Descrição
GET /atletas Lista todos os atletas
POST /atletas Cria atleta
GET /atletas/{id} Detalhes
PUT /atletas/{id} Atualiza
DELETE /atletas/{id} Remove
Método Rota
GET /centros
POST /centros
Método Rota
GET /categorias
POST /categorias
alembic revision --autogenerate -m "mensagem da migração"alembic upgrade headRodar testes:
pytest -vContribuições são bem‑vindas!
Siga estes passos: 1. Faça um fork 2. Crie uma branch:
git checkout -b feature/minha-feature 3. Faça um commit:
git commit -m "minha nova feature" 4. Envie:
git push origin feature/minha-feature 5. Abra um Pull Request
Este projeto está sob a licença MIT.
Sinta‑se livre para usar, modificar e melhorar.
Projeto desenvolvido por Estevão Gouveia.
Se este código te ajudou, deixe uma ⭐ no repositório!