Este projeto é uma API REST desenvolvida com Spring Boot para o gerenciamento de clientes com integração automática de endereços via CEP, utilizando a API pública ViaCEP.
A aplicação segue boas práticas de arquitetura e design, aplicando princípios de Clean Code, SOLID e o padrão Strategy, garantindo um código organizado, escalável e de fácil manutenção. Sempre que um cliente é cadastrado ou atualizado, o sistema verifica se o endereço já existe na base de dados; caso contrário, realiza a consulta externa ao ViaCEP e persiste o endereço localmente, evitando chamadas desnecessárias.
O projeto foi desenvolvido com foco em simular um cenário real de APIs corporativas, sendo ideal para estudos, portfólio e como base para evoluções futuras, incluindo deploy em ambientes cloud como a AWS.
API RESTful
-
Separação de responsabilidades (Controller, Service, Repository)
-
Padrão de Projeto Strategy
-
Injeção de Dependências
-
Integração com serviço externo (ViaCEP)
-
Reutilização de dados de endereço
-
Boas práticas de nomenclatura e organização de pacotes
-
Java
-
Spring Boot
-
Spring Data JPA
-
Maven
-
API ViaCEP
-
Banco de dados relacional (H2 / outro compatível)
-
REST
-
Cadastro de clientes
-
Atualização de clientes
-
Exclusão de clientes
-
Consulta de clientes por ID
-
Listagem de clientes
-
Consulta automática de endereço via CEP
-
Persistência de endereços para evitar chamadas repetidas à API externa
Clientes
GET /clientes → Lista todos os clientes
GET /clientes/{id} → Busca cliente por ID
POST /clientes → Cadastra um novo cliente
PUT /clientes/{id} → Atualiza um cliente existente
DELETE /clientes/{id} → Remove um cliente
{
"nome": "João Silva",
"endereco": {
"cep": "01001000"
}
}- Clone o repositório:
git clone https://github.com/seu-usuario/spring-cep-api.git - Acesse o diretório do projeto:
cd spring-cep-api - Execute a aplicação:
./mvnw spring-boot:runoumvn spring-boot:run - A API estará disponível em:
http://localhost:8080
-
Cache de CEP com Spring Cache
-
Tratamento global de exceções (@ControllerAdvice)
-
Criação de DTOs
-
Validação de dados com Bean Validation
-
Testes unitários e de integração
-
Autenticação e autorização (Spring Security)
-
Deploy em AWS (EC2, RDS, ECS ou Elastic Beanstalk)
Desenvolvido por Tiago Alves
Projeto criado com foco em aprendizado, boas práticas e portfólio profissional.
Este projeto é livre para uso educacional e demonstração.