Skip to content

Tleofreitas/Mod8_Desafio3

Repository files navigation

Projeto CRUD de clientes

Desafio proposto

Você deverá entregar um projeto Spring Boot contendo um CRUD completo de web services REST para acessar um recurso de clientes, contendo as cinco operações básicas aprendidas no capítulo:

  • Busca paginada de recursos
  • Busca de recurso por id
  • Inserir novo recurso
  • Atualizar recurso
  • Deletar recurso

O projeto deverá estar com um ambiente de testes configurado acessando o banco de dados H2, deverá usar Maven como gerenciador de dependência, e Java como linguagem.

Um cliente possui nome, CPF, renda, data de nascimento, e quantidade de filhos. A especificação da entidade Client é mostrada a seguir (você deve seguir à risca os nomes de classe e atributos mostrados no diagrama):

image

Seu projeto deverá fazer um seed de pelo menos 10 clientes com dados SIGNIFICATIVOS (não é para usar dados sem significado como “Nome 1”, “Nome 2”, etc.).

Seu projeto deverá tratar as seguintes exceções:

  • Id não encontrado (para GET por id, PUT e DELETE), retornando código 404.
  • Erro de validação, retornando código 422 e mensagens customizada para cada campo inválido. As regras de validação são:
    1. Nome: não pode ser vazio
    2. Data de nascimento: não pode ser data futura (dica: use @PastOrPresent)



CHECKLIST:

  1. Busca por id retorna cliente existente
  2. Busca por id retorna 404 para cliente inexistente
  3. Busca paginada retorna listagem paginada corretamente
  4. Inserção de cliente insere cliente com dados válidos
  5. Inserção de cliente retorna 422 e mensagens customizadas com dados inválidos
  6. Atualização de cliente atualiza cliente com dados válidos
  7. Atualização de cliente retorna 404 para cliente inexistente
  8. Atualização de cliente retorna 422 e mensagens customizadas com dados inválidos
  9. Deleção de cliente deleta cliente existente
  10. Deleção de cliente retorna 404 para cliente inexistente

Realizando Testes

Video tutorial aqui




Para resalizar os testes localmente siga os passos abaixo

Pré-requisitos para testes locais

Para testar localmente você deve ter instalados em sua máquina:

1) Descompactador de arquivos

O Windows 10 já possui um programa padrão para visualizar arquivos compactados. Caso seu sistema operacional seja anterior ao Windos 10, realize o passo abaixo:

Para visualizar o projeto você precisará extrair os arquivos através de um programa para arquivos compactados.

Recomendo Winrar, baixe a versão 32x ou 64x, de acordo com seu sistema.

Link para download: https://www.win-rar.com/download.html

2) IDE (Ambiente de Desenvolvimento Integrado)

Este será utilizado para executar a aplicação. Recomendo STS (Spring Tool Suit) ou IntelliJ Community

3) Java JDK...

Caso você não tenha instalado e configurado em sua máquina, instale da seguinte maneira: Instalar Java JDK 17


📦️ Realizando teste localmente

1) Clone (baixe) o repositório

Nesta página, clique no botão Code, depois em Download ZIP e salve o arquivo.

image

Extrair arquivos: Abra a pasta onde o arquivo foi salvo.

2) Extração

2.1) Extrair arquivos sem Winrar

Clique com o botão direito sobre o arquivo e selecione Extrair Tudo.

image

As informações foram extraídas para a pasta Mod8_Desafio3-main.

2.2) Extrair arquivos com Winrar

Clique com o botão direito sobre o arquivo e selecione Extrair Aqui (Extract Here).

image

As informações foram extraídas para a pasta Mod8_Desafio3-main.

3) Abrir Projeto

3.1) Abrir projeto com STS

Clique em File, Import, Maven, Existing Maven Projects, Next...

image

Selecione a pasta onde você salvou o projeto, Finish

image

Aguarde a importação do projeto (acompanhe a barra de carregamento no canto inferior direito).

3.2) Abrir projeto com IntelliJ

Clique em Open, selecione a pasta onde você salvou o projeto, Ok...

image

Caso apareça a tela abaixo, selecione Maven Project...

image

Aguarde a importação do projeto (acompanhe a barra de carregamento no canto inferior direito).

4) Executar o Projeto

4.1) Executar projeto com STS

No menu Boot Dashboard, clique com botão direito em desafio3, (Re)start e aguarde o programa ser iniciado...

image

Neste mesmo menu, a indicação de em execução é uma seta verde para cima

image

No menu Console, pode-se ver o tempo de inicialização e a indicação de processo rodando...

image

4.2) Executar projeto com IntelliJ

Acesse Mod8_Desafio3-main > src > main > java > Desafio3Application, clique com botão direito e clique em Run 'Sistema...' e aguarde o programa ser iniciado...

image

No menu Run, pode-se ver o tempo de inicialização e a indicação de processo rodando...

image

5) Com o Programa em Execução

Acesse o H2 DataBase com o link http://localhost:8080/h2-console

Informações de acesso:

  • Driver Class: org.h2.Driver
  • JDBC URL: jdbc:h2:mem:testdb
  • User Name: sa
  • Senha:

image

Criação de tabelas e Seed de dados

As tabelas que foram criadas podem ser vistas no lado esquerdo. Neste caso é apenas a de Client

Para ver o seed de dados, selecione a tabela e clique em Run. O retorno da consulta aparece logo abaixo.

image


⚠️ Erros comuns ⚠️

No passo Como Testar o Código>

Se não houver a opção Extrair Tudo, significa que não há programa instalado para manipulação de arquivos compactados. Neste cado, seguir com o passo Pré-requisitos para testes locais.

Abrir projeto com IntelliJ Community

Após o término da importação, pode ocorrer do IntelliJ não localizar o JDK, neste caso, vá em File, Settings, pesquise por JDK, selecione Importing e em JDK for importer selecione seu JDK. Aplique (Apply) e Ok.

image

Caso você não tenha o JDK instalado, siga com o passo Pré-requisitos para testes locais - Java JDK.

Abrir o projeto

Após os arquivos serem carregados, pode acontecer de aparecer um X ou um ! vermelho. Caso isso ocorra, tente as soluções deste tutorial: https://www.youtube.com/watch?v=Je4JWWJcyo0


Dúvidas? Contate-me

Me envie uma mensagem no WhatsApp


Contribuintes 🔥👊

Este projeto foi desenvolvido durante o curso Formação Desenvolvedor Moderno da escola DevSuperior, sobe orientação do tutor Nelio Alves.

About

API REST, Padrão Camadas, CRUD, Exceções e Validações @devsuperior https://devsuperior.com.br

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages