/Voll.med

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

Primary LanguageJava

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 😁.