You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Repositório para o Tech Challenge Fase 5 - Grupo 30
Este repositório contém o código-fonte e a documentação para o Tech Challenge - Fase 5, desenvolvido pelo Grupo 30.
O projeto consiste em uma sistema de e-commerce utilizando uma arquitetura com microserviços. Além do Spring Framework, Spring Boot e Sping Data, também utilizamos neste projeto as bibliotecas Spring Security e Spring Gateway.
1- Relatório Técnico
Tecnologias e ferramentas utilizadas
Linguagem de programação:
Java 17
Framework:
Spring Boot 3.2.2
Bibliotecas:
Spring Web
Spring Security
Spring Gateway
OpenAPI
Lombok
Banco de dados:
PostgreSQL
Outras ferramentas:
Docker
Configurações da solução
Arquitetura
O sistema opera de forma que o usuário deve efetuar login para obter o token JWT, necessário para acessar as demais rotas através do gateway. Dentro do gateway, é realizada uma validação para determinar a validade do token. Caso o token seja inválido, o sistema retornará um erro 401 (Unauthorized). Se o token for válido, o usuário será redirecionado para a próxima rota.
Banco de Dados
Utilizamos um banco de dados para cada microserviço e configuramos dois profiles, um profile para trabalharmos com H2 e outro para trabalharmos com o PostgreSQL:
Para criação dos container, compilar e rodar a applicação é necessário apenas o comando:
docker-compose up -d
Documentação das APIS
Adicionamos a geração automática da documentação através da biblioteca SpringDoc OpenAPI, a documentação pode ser acessada enquanto a aplicação estiver rodando em http://localhost:8080/swagger-ui/index.html#/:
O projeto foi concluído com êxito, atendendo plenamente aos requisitos estabelecidos no desafio. As tecnologias e ferramentas adotadas demonstraram ser adequadas para o propósito do sistema, contribuindo para um desenvolvimento eficiente e robusto.
As principais dificuldades encontradas estão relacionadas a utilização, configuração e compreensão, do Spring Security e Spring Gateway. A complexidade dessas tecnologias exigiu um esforço adicional por parte da equipe para garantir uma implementação eficaz e sem falhas.