O objetivo é identificar os conhecimentos quanto às tecnologias utilizadas no cotidiano de desenvolvimento de uma equipe Back-end.
Usando Spring boot, crie uma API simples para gerenciar Pessoas. Esta API deve permitir:
• Criar uma pessoa
• Editar uma pessoa
• Consultar uma pessoa
• Listar pessoas
• Criar endereço para pessoa
• Listar endereços da pessoa
• Poder informar qual endereço é o principal da pessoa
Uma Pessoa deve ter os seguintes campos:
-
Nome
-
Data de nascimento
-
Endereço
- Logradouro
- CEP
- Número
- Cidade
Requisitos
• Todas as respostas da API devem ser JSON
• Banco de dados H2
Para o desenvolvimento do projeto, considerei as premissas:
- Uma pessoa pode ter mais de um endereco e um endereco pode ter mais de uma pessoa, no caso de uma familia, por exemplo
- Não deve haver duplicidades de registro.
-
Java 17
-
Spring Boot
-
JPA/Hibernate
-
Spring Web MVC
-
SpringDoc
-
Bean Validation
-
Lombok
-
Mockito
-
JUnit
-
-
Maven
-
Postman
-
H2 (Banco de dados Relacional)
Deploy da aplicação feita na Amazon Web Services (EC2)
Java 17
Maven 3.9.0
- Clonar o repositório
git clone https://github.com/vitormarcato/desafio-api-pessoas.git
ou fazer download do .zip file
- Na pasta do projeto "desafio-api-pessoas" faça o build utilizando o maven:
mvn clean package
- Na sequência, na pasta /target execute o arquivo .jar:
java -jar api-pessoas-0.0.1-SNAPSHOT.jar
Ao executar o projeto é possível verificar a documentação na URL abaixo:
http://localhost:8080/swagger-ui/index.html#/
POST Criar Pessoa
Parâmetros
http://localhost:8080/pessoas
Request Body - Json
{
"nome":"alberto",
"dataNascimento":"2000-02-02"
}
PUT Editar uma Pessoa (é possível informar qual endereço é o principal)
Parâmetros
http://localhost:8080/pessoas
Request Body - Json
{
"id": 1,
"nome": "renato",
"dataNascimento": "2000-02-02",
"principal": 1
}
PUT Atribuir Endereco Para Pessoa (permite atribuir um endereco cadastrado à uma pessoa já cadastrada)
Parâmetros
http://localhost:8080/pessoas/{id_pessoa}/enderecos/{id_endereco}
GET Consultar uma Pessoa
Parâmetros
http://localhost:8080/pessoas/{id}
GET Listar pessoas e enderecos da pessoa
Parâmetros
http://localhost:8080/pessoas
DELETE Excluir pessoa
Parâmetros
http://localhost:8080/pessoas/{id}
POST Criar endereco
Parâmetros
http://localhost:8080/enderecos
Request Body - Json
{
"logradouro":"rua 1",
"cep":"12345671",
"numero":"1",
"cidade":"São Paulo"
}
DELETE Excluir endereco
Parâmetros
http://localhost:8080/enderecos/{id}
🪧 Vitrine.Dev | https://cursos.alura.com.br/vitrinedev/vitormarcato |
---|---|
✨ Nome | Desafio Back-End - API Pessoas |
🏷️ Tecnologias | java, Spring Boot, Maven, Postman, H2, AWS EC2, JPA-Hibernate, Lombok, JUnit, Mockito, Bean Validation |
🚀 URL | Veja como executar no link: Executar |
🔥 Desafio | Veja no link: Sobre |
- Durante a implementação de uma nova funcionalidade de software solicitada, quais critérios você avalia e implementa para garantia de qualidade de software?
Na minha opinião, a fase do planejamento é muito importante para garantir a qualidade de software ao implementar uma nova funcionalidade, em especial o levantamento e análise dos requisitos que é fundamental nesse processo. Além disso, questões como confiabilidade, usabilidade, manutenção, segurança, testes e satisfação do cliente devem ser considerados e avaliados.
- Em qual etapa da implementação você considera a qualidade de software?
A qualidade de software é percebida de diversas maneiras e de formas diferentes pelas pessoas. Na minha opinião a qualidade de software deve ser considerada em todas as etapas do ciclo de vida de um software, desde o início do projeto com o levantamento de requisitos e regras de negócio, passando por boas práticas no desenvolvimento do código fonte e também pelas entregas até chegar na manutenção do sistema. Importante comentar que garantir a qualidade de software em um projeto é uma maneira de diminuir custos.
Vitor Marcato https://www.linkedin.com/in/vitormarcato/