Este projeto consiste em uma API REST desenvolvida com Spring Framework para cadastro de clientes com seus respectivos endereços. A aplicação utiliza a API do ViaCEP para buscar informações de CEPs que não estejam presentes no banco de dados.
Funcionalidades:
- Cadastro de clientes com nome, CPF e endereço.
 - Validação de CPF para garantir a unicidade.
 - Integração com a API do ViaCEP para preenchimento automático de endereço a partir do CEP.
 - Persistência de dados em banco de dados (especifique qual banco de dados você utilizou).
 
Padrões de Projeto:
- Singleton: Utilizado para garantir uma única instância de classes de serviço, como a classe de integração com a API do ViaCEP.
 - Strategy: Implementado para permitir diferentes estratégias de busca de CEP (local e via API externa).
 - Facade: Simplifica a interface de acesso às funcionalidades de cadastro de clientes e endereços.
 
Tecnologias:
- ☕ Java *🍃 Spring Framework (Spring Boot, Spring Data JPA, Spring Web)
 - 💾 Banco de dados (H2 em memória)
 - 📫 API ViaCEP
 - 🔨 Maven
 
Como executar o projeto:
- Clone o repositório: 
git clone https://github.com/greglixandrao/design-patterns-spring.git - Configure as propriedades do banco de dados no arquivo 
application.properties. - Execute o projeto através da sua IDE ou via linha de comando.
 
Endpoints da API:
- POST /clientes: Cadastra um novo cliente.
 - GET /clientes/{id}: Busca um cliente pelo ID.
 - PUT /clientes/{id}: Atualiza os dados de um cliente.
 - DELETE /clientes/{id}: Exclui um cliente.
 
Observações:
- Este projeto foi desenvolvido durante o Bootcamp da DIO em parceria com a Claro.
 
Autor: