API REST desenvolvida com Spring Boot para gerenciamento de clientes com resolução automática de endereço via consulta de CEP.
Ao cadastrar ou atualizar um cliente, o sistema:
- Consulta o CEP em um serviço externo
- Persiste o endereço no banco caso ainda não exista
- Associa o cliente ao endereço salvo
O objetivo foi praticar organização em camadas, integração externa e persistência com JPA, aplicando padrões comuns utilizados no desenvolvimento backend.
- Arquitetura em camadas
- Injeção de dependência (Spring)
- Repository Pattern
- Service Layer
- Integração com API externa (ViaCEP)
- Relacionamento entre entidades JPA
- Reaproveitamento de dados persistidos
- Tratamento básico de exceções
- Separação de responsabilidades
- Java
- Spring Boot
- Spring Data JPA
- Hibernate
- MySQL
- Maven
- ViaCEP
controller
├─ Endpoints REST
service
├─ Regras de negócio
├─ Consulta de CEP
├─ Associação Cliente ↔ Endereço
repository
├─ Persistência de dados
model
├─ Entidades JPA
- ✅ Cadastro de cliente
- ✅ Atualização de cliente
- ✅ Remoção de cliente
- ✅ Listagem de clientes
- ✅ Consulta automática de endereço por CEP
- ✅ Persistência de endereço
- ✅ Reutilização de endereço existente
- ✅ Associação entre entidades
1️⃣ Cliente envia requisição com CEP
2️⃣ API verifica se o endereço já existe
3️⃣ Caso não exista → consulta ViaCEP
4️⃣ Endereço é persistido
5️⃣ Cliente é salvo com referência ao endereço
{
"nome": "Enzo",
"endereco": {
"cep": "06160180"
}
}git clone (https://github.com/EnzoAnthony006/API-REST-Clientes-e-Enderecos.git)
cd projetoCREATE DATABASE aula_jpa;spring.datasource.username=SEU_USER
spring.datasource.password=SUA_SENHA./mvnw spring-boot:runAPI disponível em:
http://localhost:8080
Projeto desenvolvido como parte do processo de evolução em Backend Java, explorando integração externa, persistência relacional e boas práticas arquiteturais utilizando Spring Boot.