SkyDrinksAPI é uma API construida para uma empresa fictícia(Sky Drinks), desenvolvida com Spring Boot.
- Docker e docker-compose.
- Java 11 ou superior.
- Maven(opcional pois no projeto já vem um binário do mesmo).
- Clone este repositório para sua máquina e abra o terminal já no diretório do projeto.
- Utilize o comando
docker-compose up
, para iniciar o container do MySQL. - Utilize o comando
./mvnw clean package
para gerar um .jar do projeto. - Utilize o comando
./mvnw spring-boot:run
para iniciar o servidor. - Para o serviço de restauração de senhas funcionar, você deve configurar as credenciais corretamente:
./mvnw spring-boot:run -D spring-boot.run.arguments="--spring.mail.username=SEU_USERNAME --spring.mail.password=SUA_SENHA"
Pronto, caso tudo tenha ocorrido com sucesso, o projeto funcionará normalmente!
- Durante a geração do .jar, você pode escolher se quer executar todos os testes, os testes unitários, os testes de integração ou nenhum teste:
./mvnw clean package -P all-tests // Para executar todos os testes.
./mvnw clean package -P unit-tests // Para executar os testes unitários.
./mvnw clean package -P integration-tests // Para executar os testes de integração.
./mvnw clean package -P skip-tests // Para não executar nenhum teste.
-
Caso precise mudar de banco de dados, você pode alterar a configuração do docker-compsose.yml
-
Caso a tabela de usuários esteja vazia, será gerado um usuário com acesso de admin padrão, ele servirá para você registrar novos usuários, caso deseje, você pode criar um novo usuário admin com ele, e então, apagá-lo.
{
"email": "admin@mail.com",
"password": "admin123",
"name": "Admin",
"role": "USER,BARMEN,WAITER,ADMIN",
"cpf": "878.711.897-19",
"birthAt": "2000-04-04"
}
Caso você precise de alguns dados de bebidas para testar, e não queria pensar em tudo, você pode pegar aqui.
-
Spring Boot - Framework Java para criação de APIs REST.
-
Project Lombok - Biblioteca Java que ajuda a remover a verbosidade do nosso código usando anotações.
-
Map Struct - Framework Java para mapear DTOs.
-
JUnit5 - Framework Java para testes unitários.
-
H2 - Banco de dados em memória.
-
Postgres - Banco de dados relacional(usado aqui no ambiente de produção).
-
MySQL - Banco de dados relacional(usado aqui no ambiente de desenvolvimento).
-
Nimbus JOSE Biblioteca para uso de JSON Web Tokens.