Skip to content

JeffSSampaio/miniAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

- Mini API Flask - Organização, Versionamento e Qualidade

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

ESTRUTURA DO PROJETO

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

INSTALAÇÃO E EXECUÇÃO LOCAL

  1. Clonar repositório:
git clone <URL_DO_REPOSITORIO>
cd miniAPI
  1. Criar e ativar ambiente virtual:
python -m venv venv
venv\Scripts\activate      # Windows
source venv/bin/activate   # Linux/Mac
  1. Instalar dependências:
pip install -r requirements.txt
  1. Executar aplicação:
python -m src.app

ENDPOINTS OBRIGATÓRIOS

CRUD de Usuários

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

ENDPOINT DO MÓDULO 2 – API DE CÂMBIO

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.

TESTES E COBERTURA (Módulo 2)

Teste unitário com mock da API externa, conforme exigido:

  1. Executar testes:
pytest -q
  1. Gerar relatório de cobertura:
pytest --cov=src --cov-report=xml:coverage.xml

O arquivo coverage.xml é utilizado pelo SonarCloud.

INTEGRAÇÃO COM SONARCLOUD

Arquivo obrigatório:

sonar-project.properties

Conteúdo:

sonar.projectKey=miniAPI
sonar.sources=src
sonar.tests=tests
sonar.python.coverage.reportPaths=coverage.xml

ESTRATÉGIA DE VERSIONAMENTO E BRANCHES

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

FLUXO APLICADO (Módulo 2)

  1. Criada branch da feature:
git checkout -b feature/exchange-api
  1. 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
  1. Abertura de Pull Request:
    feature/exchange-apidevelop

  2. Aplicado o "Loop de Qualidade" até Quality Gate = PASSED.

AUTORES

LICENÇA

Projeto acadêmico — Avaliação dos Módulos 1 e 2 (Mini API Flask + Qualidade + Integração).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages