A API de endereço possui a funcionalidade de efetuar a busca dos dados de endereço a partir de um CEP fornecido.
A aplicação foi desenvolvida utilizando uma arquitetura clean, com ênfase em manter o código limpo, legível e reutilizável, conforme os princípios do Clean Code.
O mecanismo de funcionamento da aplicação foi estruturado com base em um sistema de cache. Quando uma consulta de CEP é realizada, a aplicação inicialmente verifica a base de dados local. Caso o CEP não seja encontrado, a consulta é realizada a uma API externa, cujo retorno é armazenado na base local, acompanhado de um registro em uma base de logs, e o resultado é então retornado pela API.
Nas consultas subsequentes, ao identificar a existência do CEP na base local, a aplicação registra a operação no log e retorna o resultado diretamente da base local, sem a necessidade de realizar uma nova requisição à API externa.
O objetivo dessa abordagem é reduzir a quantidade de chamadas externas, tornando o processo de consulta mais eficiente e rápido, especialmente em cenários com alta demanda para o mesmo CEP.
Clone o projeto
https://github.com/gustavopomponi/api-endereco.git
Entre no diretório do projeto
cd api-endereco
Faça o build da imagem de container da aplicação
docker build -t api-endereco .
Inicie a stack da aplicação
docker compose up -d
GET /api/v1/endereco/{cep}
Parâmetro | Tipo | Descrição |
---|---|---|
cep |
string |
Obrigatório. O CEP que se deseja consultar |
http://localhost:8080/api/v1/endereco/04617001
Código de Retorno: 200 OK
Payload de resposta:
{
"cep": "04617000",
"logradouro": "Rua Vieira de Morais",
"complemento": "até 0430 - lado par",
"bairro": "Campo Belo",
"localidade": "São Paulo",
"uf": "SP",
"unidade": "",
"ibge": "3550308",
"gia": "1004"
}
Infraestrutura: Git, Docker
Back-end: Java, Spring Boot
Database: PostreSQL, MongoDB