Este projeto foi desenvolvido com fins estritamente educacionais, servindo como um guia prático para os alunos que desejam aprender ou aprofundar seus conhecimentos no ecossistema Spring Boot.
O objetivo principal é construir uma API REST robusta para consulta de endereços através do CEP, explorando conceitos fundamentais de desenvolvimento backend moderno.
Neste tutorial, percorreremos todo o ciclo de desenvolvimento de uma aplicação, incluindo:
- Modelo Relacional: Base de dados relacional de endereços (Estado, Cidade, Bairro e Logradouro).
- Arquitetura em Camadas: Organização de código em Controller, Service e Repository.
- Persistência de Dados: Utilização do Spring Data JPA para gerenciar relacionamentos complexos.
- Banco de Dados em Memória: Uso do H2 Database para desenvolvimento ágil e testes rápidos.
Extras
- Integração com APIs Externas: Como consumir dados de serviços externos para alimentar sua base local.
- Produtividade com Lombok: Redução de código repetitivo (boilerplate).
| Tecnologia | Descrição |
|---|---|
| Java 22+ | Linguagem base para o desenvolvimento. |
| Spring Boot 3 | Framework para agilizar a criação da aplicação. |
| Spring Data JPA | Comunicação com o banco de dados. |
| H2 Database | Banco de dados em memória para desenvolvimento. |
| Lombok* | Biblioteca para automação de Getters, Setters e Construtores. |
Tip
Ao abrir o VS Code você poderá receber um aviso de recomendações de extensões. Verifique a necessidade de cada uma e como elas funcionam aqui.
- Comandos Maven: Ao rodar comandos como
mvn clean installoumvn spring-boot:run
Para testar nossos endpoints sem precisar de softwares externos, recomendo a extensão Thunder Client ou REST Client.
Tip
Verifique se a extensão Lombok Annotations Support está instalada no VS Code.
Verifique se a extensão REST Client está instalada no VS Code.
- Instale a extensão REST Client no VS Code.
- Crie um arquivo na pasta raiz chamado
testes.http. - Cole o conteúdo abaixo:
### Criar um Estado
POST http://localhost:8080/api/v1/estados
Content-Type: application/json
{
"nome": "Sergipe",
"sigla": "SE"
}
### Listar Estados
GET http://localhost:8080/api/v1/estados
Tip
Use a url [http://localhost:8080/swagger-ui/index.html] para ver os endpoints disponíveis.
Nota: Esta documentação foi gerada com o auxílio de inteligência artificial (GitHub Copilot) e revisada pelo autor.