- 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)
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
.
- 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
einfra
; - O lombok foi utilizado na criação dos
Getters
eSetters
com anotações Spring; - As configurações foram feitas no arquivo
application.properties
localizado na pastaresources
; - 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 hashBCrypt
.
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.
- Controller ➡ API
- Repository ➡ Queries
- Foi gerado um arquivo
.jar
utilizando o Maven, localizado na raiz da pasta/target
com nome deapi-0.0. 1-SNAPSHOT.jar
, já utilizando configurações de ambientes proprias para colocar em produção e não expor dados sensiveis.
- Criar uma API do zero com o Spring usando o
Spring Initializr
; - Implementar nossas primeiras funcionalidades, um
controller
, umrepository
; - 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 😁.