Skip to content

vhnegrisoli/curso-udemy-autenticacao-stateless-stateful-microsservicos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto: Curso Udemy - Autenticação Stateful e Stateless em Microsserviços

Repositório contendo o projeto desenvolvido do curso Autenticação Stateful e Stateless em Microsserviços, ministrado por mim para a plataforma Udemy.

Para acessar o curso na plataforma, basta acessar esta URL: https://www.udemy.com/course/autenticacao-stateful-stateless-microsservicos/

Tecnologias

  • Java 17
  • Spring Boot 3
  • API REST
  • PostgreSQL (Container)
  • Docker
  • docker-compose
  • JWT

Arquitetura Proposta

No curso, desenvolveremos a seguinte aquitetura:

Autenticação Stateless

Arquitetura Stateless

Autenticação Stateful

Arquitetura Stateful

  • Serão desenvolvidos 2 projetos, o projeto stateless e o projeto stateful.
  • Cada projeto terá 2 aplicações, totalizando 4 APIs.
  • Em cada projeto, teremos a API de Auth, responsável por gerar o token.
  • Em cada projeto, teremos a API chamada Any, responsável por retornar uma informação, qualquer, que irá apenas simular um microsserviço aleatório que precisa validar o token.
  • Na arquitetura stateful, será utilizado o banco de dados NoSQL Redis para armazenar os tokens.

Executando os projetos

Existem três maneiras de rodar todos os projetos, via script utilitário que deixei para auxiliar no desenvolvimento, manualmente ou via docker-compose.

Obs: independente da maneira que você queira rodar, será necessário realizar o build das aplicações com o comando gradle build na raiz de cada aplicação, para poder criar suas imagens, ou seja, será necessário ter o Docker e o Gradle instalado.

Rodando tudo com script utiliário

Para rodar tudo com o script, basta executar o comando:

python build.py

Para isso, será necessário ter o Python 3 instalado.

O script fará todos os seguintes processos:

  • Parará e apagará todos os containers rodando.
  • Entrará no diretório de cada uma das 4 APIs e rodará o comando gradle build em paralelo para não levar muito tempo realizando sequencialmente.
  • Irá aguardar o build de cada API finalizar.
  • Assim que todos os builds finalizarem, então irá executar todos os containers novamente.

Execução das aplicações manualmente

Para rodar as aplicações, será necessário ter instalado:

  • Docker
  • Java 17
  • Gradle 7.6 ou superior

Para rodar as aplicações, você pode rodar diretamente via IDE, ou também, pode executar o comando: gradle bootRun na raiz de cada aplicação. Realizar o build antes.

Execução dos containers

Para executar tudo, basta executar o arquivo docker-compose.yml com o comando:

docker-compose up --build -d

Lembrando que será necessário realizar o build das aplicações na primeira vez que for executar o docker-compose, ou a cada nova alteração, para que seja sempre construída uma imagem com as últimas alterações.

Acessando as aplicações

Será possível acessar as aplicações via Swagger ou via Postman.

Collection do Postman

Caso queira executar via Postman, basta realizar o download da Collection disponibilizada aqui, e importar em seu Postman.

Collections

Swagger

Os acessos de host e porta das aplicações são:

Exemplos de acesso:

API 1

API 2

Os acessos de host e porta dos bancos de dados são:

  • stateless-auth-db (PostgreSQL): localhost:5432
  • stateful-auth-db (PostgreSQL): localhost:5433
  • token-redis (Redis): localhost:6379

Autor

Victor Hugo Negrisoli

Desenvolvedor de Software Back-End

About

Repositório do projeto do curso "Autenticação Stateful e Stateles em Microsserviços" ministrado por mim para a plataforma Udemy.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published