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:
🗺️ Visão geral do sistema:
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:
🛠️ Utilização
🎯 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:
{{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