Projeto desenvolvido para o TDE dos Módulos 1 e 2, abrangendo:
- Organização e Versionamento (Mini API em Flask)
- Estruturação escalável
- Testes automatizados com mock
- Cobertura de testes (pytest-cov)
- Integração com API externa (AwesomeAPI)
- Análise de qualidade com SonarCloud
- GitFlow completo com branches, PRs e commits padronizados
| Pasta / Arquivo | Descrição |
|---|---|
src/ |
Código-fonte da aplicação |
src/__init__.py |
Inicialização do módulo Python |
src/app.py |
Factory principal da aplicação |
src/config.py |
Configurações da aplicação e do banco |
src/extensions.py |
Inicialização do SQLAlchemy |
src/models.py |
Modelo Usuario |
src/routes/ |
Organização das rotas |
src/routes/routes.py |
Rotas CRUD dos usuários |
src/routes/exchange_routes.py |
Endpoint de câmbio (USD → BRL) |
src/services/exchange_service.py |
Consumo da AwesomeAPI |
src/instance/ |
Arquivos de instância/local |
tests/ |
Testes unitários e cobertura |
coverage.xml |
Relatório de cobertura (pytest-cov) |
sonar-project.properties |
Configurações do SonarCloud |
.gitignore |
Arquivos ignorados pelo Git |
requirements.txt |
Dependências do projeto |
README.md |
Documentação do projeto |
- Clonar repositório:
git clone <URL_DO_REPOSITORIO> cd miniAPI
- Criar e ativar ambiente virtual:
python -m venv venv venv\Scripts\activate # Windows source venv/bin/activate # Linux/Mac
- Instalar dependências:
pip install -r requirements.txt
- Executar aplicação:
python -m src.app
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /api/usuarios/ |
Lista todos os usuários |
| POST | /api/usuarios/ |
Cria um novo usuário |
| PUT | /api/usuarios/<id>/ |
Atualiza dados de um usuário |
| DELETE | /api/usuarios/<id>/ |
Remove um usuário |
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /exchange/usd-to-brl |
Retorna a cotação atual do dólar (USD → BRL) |
Implementado utilizando a API externa AwesomeAPI.
Teste unitário com mock da API externa, conforme exigido:
- Executar testes:
pytest -q
- Gerar relatório de cobertura:
pytest --cov=src --cov-report=xml:coverage.xml
O arquivo coverage.xml é utilizado pelo SonarCloud.
Arquivo obrigatório:
sonar-project.properties
Conteúdo:
sonar.projectKey=miniAPI sonar.sources=src sonar.tests=tests sonar.python.coverage.reportPaths=coverage.xml
| Branch | Função |
|---|---|
| main | Versão estável / produção |
| develop | Integração de features |
| feature/* | Desenvolvimento de novas funcionalidades |
| fix/* | Correções |
| hotfix/* | Correções emergenciais |
- Criada branch da feature:
git checkout -b feature/exchange-api
- Commits seguindo padrões exigidos:
feat(exchange): add usd-to-brl service and endpoint test(exchange): add mocked awesomeapi test chore(ci): add sonar properties and coverage fix(sonar): correct code smells
-
Abertura de Pull Request:
feature/exchange-api→develop -
Aplicado o "Loop de Qualidade" até Quality Gate = PASSED.
- Matheus T. O. da Penha — matheus.penha@cest.edu.br
- Meiryelle Gusmão Macedo — meiryelle.macedo@cest.edu.br
- Jefferson Sousa Sampaio Junior — jefferson.sampaio@cest.edu.br
- Henrique Augusto Santos Matos — augusto.smatos@cest.edu.br
Projeto acadêmico — Avaliação dos Módulos 1 e 2 (Mini API Flask + Qualidade + Integração).