Desenvolvimento de uma API voltada para a eficiente administração de estoques de café. Essa plataforma tecnológica tem como objetivo simplificar e aprimorar significativamente o controle de inventário e o relacionamento com os clientes dentro do setor cafeeiro.
Como gerenciador de dependências, foi escolhido o Gradle, que é uma ferramenta para automatização de build e gerenciamento de dependências. Este se baseia nos conceitos de Apache Ant e Apache Maven. Não é necessária a instalação do Gradle, visto que estamos utilizando o Gradle Wrapper, o qual fica responsável por buscá-lo no repositório remoto para que o Gradle original seja utilizado em nossa aplicação. As dependências a seguir foram incluídas no arquivo build.gradle.kts
para que pudessem ser utilizadas no projeto:
Nome | Versão |
---|---|
Spring Boot | 3.1.5 |
Spring Boot Starter Test | 3.1.5 |
Springdoc Openapi Starter UI | 2.2.0 |
Kotlin | 1.8.22 |
Mockk | 1.13.8 |
MySQL Connector Java | 8.0.28 |
JUnit | 5.9.3 |
Entre os requisitos do projeto, vale ressaltar:
- MySQL Server (v8.2.0);
- Docker (v24.0.7);
- JDK - Java Development Kit (v17.0.9);
Clone do repositório:
git clone https://github.com/Joaohsd/coffee-stock-api.git
Para a execução do projeto, temos duas opções, as quais serão apresentadas a seguir:
A execução sem a utilização do Docker requer a instalação da JDK e do MySQL Server. Para a aquisição de ambos, é possível por meio dos links a seguir:
Realizadas as instalações, siga os passos a seguir para executar a nossa aplicação:
- Execute o script SQL presente em
schema/schema.sql
através do MySQL Workbench ou outra ferramenta semelhante. Este script é responsável pela inicialização do nosso Banco de Dados. - Rode os testes unitários da nossa aplicação por meio do gradle wrapper na raiz do projeto:
Para Linux:
./gradlew clean test
Para Windows:
./gradlew.bat clean test
- Realize o build da nossa aplicação por meio do gradle wrapper na raiz do projeto:
Para Linux:
./gradlew clean build
Para Windows:
./gradlew.bat clean build
- Dado que nenhum teste tenha falhado e a etapa de build não retornou erros, execute a nossa aplicação por meio do seguinte comando na raiz do projeto:
java -jar build/libs/coffeestock-0.0.1-SNAPSHOT.jar
A utilização do Docker facilita o processo de execução da aplicação. Por meio das imagens a seguir e do docker-compose
, podemos gerenciar os containers da nossa aplicação. Cada imagem contém uma dependência conforme apresentado na seção de execução Sem Docker.
- MySQL - Container para o Banco de Dados da aplicação;
- API - Container para a aplicação;
- Adminer - Container para um client semelhante ao mysql-workbench;
A execução do projeto é possível por meio do seguinte comando na raiz do projeto:
docker-compose up
Realizado tal comando, as três imagens serão baixadas para a sua máquina e seus respectivos containers serão executados.
Caso você realize alguma modificação, também é possível criar uma nova imagem por meio do Dockerfile
presente na raiz do projeto. Para isso, realize o seguinte comando a seguir:
docker build -t <nome-da-imagem> .
Feito isso, altere o arquivo docker-compose.yml
presente na raiz do projeto para a imagem nome-da-imagem
escolhida durante o processo de build do docker. Após este processo, é possível rodar novamente a aplicação por meio do seguinte comando na raiz do projeto:
docker-compose up
Para acessar a interface do Swagger (depois de executar a aplicação), vá para localhost:9000/swagger e você verá uma tela como esta:
Esta página é uma documentação da nossa API, a qual apresenta todos os recursos e seus respectivos endpoints. Aliado a isso, também é possível realizar testes manuais, como: adicionar um cliente, atualizar um cliente, adicionar um estoque, remover um estoque, entre outros.