O PetControl é uma API REST desenvolvida em Spring Boot para cadastro e gerenciamento de pets disponíveis para adoção. O sistema permite criar, listar, consultar, editar e remover pets, fornecendo uma arquitetura organizada, documentação interativa e integração com aplicações frontend.
🔗 Disponível em produção (Swagger/OpenAPI): https://petcontrol-api-h7vz.onrender.com/swagger-ui/index.html
Este projeto possui uma interface web desenvolvida separadamente para consumo da API:
🔗 Frontend (Produção): https://petcontrol-app.onrender.com
🔗 Repositório: https://github.com/db-petcontrol/petcontrol-app
- Cadastro de pets com validação de dados
- Listagem paginada de pets ordenados por nome
- Visualização detalhada de um pet por ID
- Edição de informações de pets cadastrados
- Exclusão de pets
- Regras de validação para dados do pet (campos obrigatórios, caracteres válidos e tamanho)
- Testes unitários e de integração.
| Tecnologia | Categoria |
|---|---|
| Java | Linguagem |
| Spring Boot | Framework |
| PostgreSQL | Banco de Dados |
| H2 Database | Banco em Memória |
| MapStruct | Mapeamento |
| Lombok | Redução de Boilerplate |
| Docker | Containerização |
| Flyway | Migrations |
| GitHub Actions | CI/CD |
| Git Hooks | Validações Locais |
| JUnit | Testes Unitários |
| Mockito | Mocking |
| JaCoCo | Cobertura de Testes |
| Checkstyle | Padronização de Código |
| Spotless | Formatação |
| Swagger / OpenAPI | Documentação da API REST |
Antes de começar, você precisará ter instalado em sua máquina:
- Docker
- Git
- Java (versão 21 - LTS recomendado)
- Maven (ou utilizar o wrapper
mvnwincluído no projeto)
# Clone o repositório
git clone https://github.com/db-petcontrol/petcontrol-api.git
# Acesse a pasta do projeto
cd petcontrol-apidocker-compose up -d --builddocker-compose up -d postgres./mvnw spring-boot:runO projeto possui:
- Testes unitários
- Testes de integração (cenários felizes)
Para executar os testes automatizados:
./mvnw testO projeto utiliza JaCoCo para análise de cobertura.
Para gerar o relatório:
./mvnw clean verifyOBS: O relatório também é gerado após a execução dos testes.
O relatório estará disponível em:
target/site/jacoco/index.htmlAbra o arquivo index.html no navegador para visualizar os detalhes da cobertura.
O projeto utiliza Checkstyle e Spotless para garantir consistência, legibilidade e padronização do código.
Para verificar padrões de código (Checkstyle)
./mvnw checkstyle:checkPara corrigir formatação automaticamente (Spotless)
./mvnw spotless:applyA documentação da API está disponível via Swagger:
http://localhost:8080/swagger-ui/index.htmlApós iniciar a aplicação, acesse o link acima para:
- Visualizar os endpoints disponíveis
- Testar requisições diretamente
- Consultar contratos da API
Feito com apoio de ☕ por 👩💻 Gabriela de Castro Laurindo e Rachel Pizane Maia