- 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 Initializrpara iniciar com as dependências: "WEB, Validation, Spring Data JPA e Lombok"; - Driver Spring: MySQL e Flyway;
- Organização dos pacotes em
controller,domaineinfra; - O lombok foi utilizado na criação dos
GetterseSetterscom anotações Spring; - As configurações foram feitas no arquivo
application.propertieslocalizado 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
repositorydo Spring JPA para facilitar acesso aos dados do banco; - Mapeamento das entidades JPA;
- Controle de acesso com implementação da biblioteca
Auth0 java-jwtutilizando 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
.jarutilizando o Maven, localizado na raiz da pasta/targetcom 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
CRUDda nossa aplicação; - Fazer a validação com o
Bean Validation; - Usar as
migrationspara controlar o histórico de evolução do banco de dados; - Aplicar testes automatizados.
*Falta somente subir em um servidor 😁.