API RESTful construída com Java 21 e Spring Boot 3.2.4.
A API desenvolvida deve permitir:
- Criar, editar e consultar uma ou mais pessoas;
- Criar, editar e consultar um ou mais endereços de uma pessoa; e
- Poder indicar qual endereço será considerado o principal de uma pessoa.
Uma pessoa deve possuir os seguintes dados:
- Nome completo
- Data de nascimento
- Endereços:
- Logradouro
- CEP
- Número
- Cidade
- Estado
Outros pontos considerados:
- Atingir o máximo de cobertura do código.
- Construir API no formato REST.
- Boas práticas de programação
- Java 21: Versão LTS mais recente do Java para tirar vantagem das últimas inovações que essa linguagem robusta e amplamente utilizada oferece;
- Spring Boot 3: Versão do Spring Boot, que maximiza a produtividade do desenvolvedor por meio de sua poderosa premissa de autoconfiguração;
- Spring Data JPA: Ferramenta pode simplificar a camada de acesso aos dados, facilitando a integração com bancos de dados SQL;
- FlyWay: Ferramenta que permite versionar e migrar seu banco de dados com scripts SQL simples ou Java;
Diagrama de classes na sintaxe Mermaid.
classDiagram
class BasicEntity {
<<Abstract>>
- String id
}
class Person {
- String name
- LocalDate birthDate
- List~Address~ adresses
+ Optional~Address~ getMainAddress()
}
class Address {
- String publicPlace
- Integer number
- String city
- String zipCode
- State state
- AddressType addressType
- boolean main
}
class AddressType {
<<Enumeration>>
COMMERCIAL("Comercial")
HOME("Residencial")
MAILING("Correspondência")
}
BasicEntity <-- Person
BasicEntity <-- Address
Person "1" *-- "0..n" Address
Address --> AddressType
Banner do Spring personalizado
Coverage com 100% - relatório gerado pelo plugin do Jacoco
Swagger documentando endpoints
Os testes foram feitos utilizando JUnit 5, Mockito e MockMVC com Hamcrest.
-
Para executar os testes pode executar sua IDE ou
-
Utilizando o terminal (PowerShell, Bash ou similiar), basta executar na pasta do projeto o comando abaixo:
./mvnw clean test
Após o teste finalizado com sucesso, é possível verificar relatório de coverage em: target/site/jacoco/index.html
Antes de mais nada, é preciso Possuir no mínimo JDK 21 LTS instalado na máquina em que irá executar. A execução do projeto pode ser feita utilizando recurso de sua IDE ou com comando (demonstrado no próximo item).
./mvnw spring-boot:run -Dspring_profiles_active=dev
Swagger OpenAPI v3.1, link para acessar a página do Swagger executando o projeto localmente: http://localhost:8080/swagger-ui/index.html
Para popular dados automaticamente foi criada a migration do FlyWay V3__Populate.sql
.
Esse projeto foi implantado no Railway que faz integração com o repositório do GitHub. URL do Swagger na nuvem: https://peoplehub-production.up.railway.app/swagger-ui/index.html
📋 Qualquer dúvida, sugestão ou crítica é só entrar em contato ou abrir uma Issue (https://github.com/didifive).
💚 Feito com muita dedicação. #EnjoyThis