Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PROJETO ESTUDO SPRING BOOT (CRUD)

Estudo de Spring Boot baseado no curso da plataforma Alura.

Ferramentas e start no projeto:

  • Spring Boot (ver 3.0.7) - Dependencies : pom.xml (api)
  • JAVA SDK 17 Oracle
  • MySQL (Ver 8.0.32)
  • DBeaver
  • Insomnia

*Ambiente desenvolvimento: Windows 10 com WSL2 (Ubuntu 20.04.6 LTS)


Start:

Para iniciar, baixar dependências do projeto pelo Maven (arquivo pom.xml), utilizar MySQL ver 8, e ferramentas de acesso ao banco de dados pelo DBeaver e Insomnia. Criar e configurar o banco de dados como vollmed_api Inicializar o MySQL antes de rodar o ApiApplication.java.


Resumo:

Parte 1 & 2:

  • Utilização Spring Boot versão 3, estudo de CRUD em API Rest;
  • Foi utilizado o Spring Initializr para iniciar com as dependências: "WEB, Validation, Spring Data JPA e Lombok";
  • Driver Spring: MySQL e Flyway;
  • Organização dos pacotes em controller, domain e infra;
  • O lombok foi utilizado na criação dos Getters e Setters com anotações Spring;
  • As configurações foram feitas no arquivo application.properties localizado na pasta resources;
  • Migrations foram usadas para modificar o banco de dados na evolução do projeto;
  • Implementação dos métodos: GET, POST, UPDATE, DELETE;
  • Uso de repository do Spring JPA para facilitar acesso aos dados do banco;
  • Mapeamento das entidades JPA;
  • Controle de acesso com implementação da biblioteca Auth0 java-jwt utilizando tokens JWT com hash BCrypt.

Documentação pelo SpringDocs (Swagger UI):

Para gerar a documentação automatica do projeto, foi utilizado uma lib do Spring chamado SpringDoc (link), funciona examinando a aplicação em tempo de execução para inferir a semântica da API com base nas configurações do Spring, estrutura de classes e várias anotações.

*Acesso à documentação precisa ser feito localmente, com o projeto rodando.


Testes do Spring:

  • Controller ➡ API
  • Repository ➡ Queries

Build via Maven:

  • Foi gerado um arquivo .jar utilizando o Maven, localizado na raiz da pasta /target com nome de api-0.0. 1-SNAPSHOT.jar, já utilizando configurações de ambientes proprias para colocar em produção e não expor dados sensiveis.

Conclusão:

  • Criar uma API do zero com o Spring usando o Spring Initializr;
  • Implementar nossas primeiras funcionalidades, um controller, um repository;
  • Usar o Flyway;
  • Fazer o CRUD da nossa aplicação;
  • Fazer a validação com o Bean Validation;
  • Usar as migrations para controlar o histórico de evolução do banco de dados;
  • Aplicar testes automatizados.

*Falta somente subir em um servidor 😁.

About

Projeto API REST utilizando Spring. Produzido com aula da Alura.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages