Este repositório contém um desafio de implementação de um sistema CRUD em Java com Spring Boot. O sistema permite o gerenciamento de Pessoas e Endereços, onde cada Pessoa pode ter vários Endereços, criando um relacionamento de um-para-muitos.
Anexo 📎: CRUD - Pessoa 13.pdf
- Java 17 ou superior ☕
- Spring Boot (versão 2.x ou superior) 🚀
- Banco de dados H2 para persistência 🗄️
- Spring Data JPA para integração com o banco de dados 🔗
- Validações básicas ✔️ e tratamento de exceções
⚠️ implementados - API RESTful com respostas em formato JSON 🌐
- Listar todas as pessoas e seus respectivos endereços 📝
- Listar pessoa por id 📜
- Criar uma nova pessoa com um ou mais endereços 🆕
- Atualizar os dados de uma pessoa e/ou seu(s) endereço(s) ✏️
- Excluir uma pessoa e todos os seus endereços 🗑️
- Mostrar a idade da pessoa 🎂
- Listar, criar, atualizar e excluir endereços associados a uma pessoa 📍
- Indicar qual endereço é o principal de uma pessoa 🏠
- Swagger para documentação da API 📑
- Paginação na listagem de pessoas 📑🔢
- Testes de integração utilizando Spring Boot Test 🧪
- Java 17: Linguagem de programação utilizada ☕
- Spring Boot: Framework para desenvolvimento de aplicações Java 🚀
- Spring Data JPA: Biblioteca para integração com o banco de dados 🔗
- H2 Database: Banco de dados em memória para persistência de dados 🗄️
- JUnit 5: Framework para testes unitários 🧪
- Swagger (opcional): Ferramenta para documentação da API 📑
A estrutura do projeto está organizada da seguinte forma:
src/main/java/com/db/Desafio_CRUD_DB
├── controller
│ ├── EnderecoController.java
| └── PessoaController.java
|
├── dto
│ ├── EnderecoDTO.java
| └── PessoaDTO.java
|
├── entity
│ ├── Endereco.java
│ └── Pessoa.java
|
├── repository
│ ├── EnderecoRepository.java
│ └── PessoaRepository.java
|
├── service
│ ├── EnderecoService.java
| └── PessoaService.java
│
├── resources
└── application.properties
___________________________________________
src/test/java/com/db/Desafio_CRUD_DB
├── controller
│ ├── EnderecoControllerTests.java
| └── PessoaControllerTests.java
|
└── service
├── EnderecoServiceTests.java
└── PessoaServiceTests.java
-
Clone o repositório 🧑💻
git clone https://github.com/seu-usuario/seu-repositorio.git cd seu-repositorio -
Instale as dependências 🔄
O projeto utiliza o Maven para gerenciamento de dependências. Para instalar as dependências, execute:mvn clean install
-
Rodar o projeto
▶️
Para rodar o projeto localmente, execute o seguinte comando:mvn spring-boot:run
-
Acessar a API 🌍
A API estará disponível em http://localhost:8080. Você pode testar os endpoints da seguinte forma:
- Listar todas as pessoas: GET /pessoas 📋
- Listar pessoa por id: GET /pessoas/{id}📜
- Criar nova pessoa: POST /pessoas 🆕
- Atualizar pessoa: PUT /pessoas/{id} ✏️
- Excluir pessoa: DELETE /pessoas/{id} 🗑️
- Acessar Swagger 📜
Se o Swagger foi implementado, acesse a documentação da API no seguinte link:http://localhost:8080/swagger-ui/index.html#/