Skip to content
This repository has been archived by the owner on May 16, 2021. It is now read-only.

Latest commit

 

History

History

projservice

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Serviço StoreGO

Para construir esta aplicação recorreu-se à framework Spring Boot.

Correr aplicação

Antes de correr a aplicação, é necessário garantir que as bases de dados MySQL e MongoDB estão a correr e disponíveis nas respetivas portas. É também necessário verificar que o Spring Boot está a utilizar os urls corretos destes serviços em application.properties.

Para saber como estas podem ser inicializadas, recomenda-se a consulta do ficheiro /projDB/readme.md.

Uma vez assegurada esta condição, basta executar o comando abaixo para correr a aplicação.

$ ./mvnw spring-boot:run

Se a compilação não foi interrompida por nenhum erro, esta deve ficar disponível na porta 8080 do localhost.

Swagger

Utilizando a ferramenta Swagger, foi possível documentar automáticamente os diversos endpoints do serviço, de acordo com os requisitos do professor.

É de notar que, alguns endpoints, para permitir paginação e outras features, retornam um Map<String, Object>, permitindo inserir informação como o número total de produtos, a página atual e, como é de esperar, os objetos daquele endpoint, não fazendo distinção se os mesmos são Produtos, Categorias...

Nestes casos, o Swagger acaba por não documentar da maneira correta, faltando alguns modelos.

A interface do Swagger encontar-se-à em http://localhost:8080/api/swagger-ui/index.html caso seja executada a aplicação em `localhost.

Preparar aplicação para o Deploy

Antes de ser possível fazer o deploy deve-se alterar os urls dos serviços no ficheiro application.properties de modo a estarem associados ao seu nome no Docker Compose. Como título de exemplo, o serviço Kafka terá o url Kafka dentro da rede interna do Docker Compose.

Posteriormente é necessário compilar o código e gerar o seu jar:

$ mvn -DskipTests clean package

Foi utilizada a opção -DskipTests para ignorar os testes neste caso pois estes iriam falhar devido aos serviços não estarem disponíveis no urL especificado pois a máquina não está no Docker Compose

O ficheiro Dockerfile, de acordo com as referências, tem a informação necessária para o deploy deste serviço através do ficheiro Docker Compose na raiz do repositório.

Referências

Spring Boot Docker

Skipping Tests with Maven