/Microsservicos-Java

Microsserviços de folha de pagamento com Java e Spring

Primary LanguageJava

Microsservicos com Java Spring

Este sistema mantém um registro dos funcionários de um determinado setor/empresa e é responsável por gerar folhas de pagamento baseado nas horas trabalhadas e salário/hora de cada funcionário. A segurança destas informações é mantida através de autenticação dos usuários autorizados e utilização de tokens de sessão com tempo de expiração.

Índice:

Tecnologias utilizadas:

Java, O brabo Spring framework Spring secutiry OAuth Security Cloud Heroku Json format
Postman para requisições http Hibernate Tokenização com JWT Banco de dados PostgreSQL

🗺️ Visão geral do sistema:

 Esquema de funcionamento dos micrisserviços

Este projeto foi feito com a arquitetura de API's REST.
Este projeto possui 7 microsserviços que funcionam da seguinte forma:

  • rh-funcionario - mantém o registro de trabalhadores e realiza o mapeamento das classes utilizando JPA
  • rh-pagamento - acessa as informações do microsserviço de funcionários e gera uma folha de pagamento
  • rh-users - mantém um registro dos usuários cadastrados e suas permissões
  • rh-auth - utiliza o protocolo OAuth e tokens JWT para liberar acesso aos serviços
  • rh-eureka-server - realiza o balanceamento de carga e comunicação entre os serviços
  • rh-api-gateway-zuul - tem a responsabilidade de rotear as requisições entre as diversas intâncias dos serviços
  • rh-config-server - responsável pela configuração centralizada do sistema

Modelo conceitual

Representação do modelo UML das entidades contidas no banco e seus relacionamentos:
 Esquema UML da camada model

🛠️ Utilização

Exemplo de instâncias dos microsserviços em funcionamento

🎯 Endpoints:

Aqui tem um conjunto de requisições e cabeçalhos predefinidos que vão te auxiliar a fazer as requisições de forma muito mais simples:
Run in Postman

{{Api-gateway}} é um endereço de porta de serviço gerada dinamicamente. O link acima cria um workspace com as configurações necessárias para acesso.

  • {{Api-gateway}}/rh-oauth/oauth/token - Gera as credenciais de acesso. O usuário e password são passados através do cabeçalho da requisição
  • {{Api-gateway}}/rh-funcionario/workers - Retorna uma lista com todos os funcionários cadastrados
  • {{Api-gateway}}/rh-user/users/search?email={{user-email}} - Busca um usuário cadastrado através do email informado
  • {{Api-gateway}}/rh-user/users/{{user-id}} - Busca um usuário através do ID
  • {{Api-gateway}}/rh-pagamento/payments/{{worker-id}}/days/{{days}} - Retorna o valor do salário do funcionário informado equivalente a quantidade de dias trabalhados