Skip to content

CleuJunior/ms-hr

Repository files navigation

Microsserviços de Recursos Humanos(RH)

Todo o projeto consiste em criar microserviços que possam ter uma folha de pagamento adequada para cada usuário. Os serviços são comunicados através das bibliotecas do Spring Cloud, utilizando Eureka, Hystrix, Zuul, Ribbon e Feign. Também foi utilizado o OAuth para ter acesso aos endpoints, dependendo do nível de privilégio de cada usuário, protegendo assim os endpoints da aplicação para uso externo.

Colocando a aplicação de pé.

Toda a aplicação antes de ser levantada sera necessario fazer a instalaçao dos pacotes use sempre o comando mvn clean install para baixar e instalar os pacotes.

hr-config-server:

Antes de tudo, é necessário iniciar nosso hr-config-server, que é responsável por configurar o servidor dos outros microserviços. Após baixar as dependências do projeto basta apenas rodar a aplicação de bootstrap para subir o projeto na porta 8888.

hr-eureka-server:

Agora, é necessário iniciar nossa aplicação hr-eureka-server para permitir o registro automático e a descoberta dinâmica dos microserviços. A porta padrão é a 8761.

hr-api-gateway-zuul:

Agora, após ter instalado as dependências do hr-api-gateway-zuul, basta iniciar a aplicação que está configurada para rodar na porta 8765. O Zuul desempenha o papel de um gateway, servindo como o ponto de entrada centralizado para as demais aplicações.

hr-oauth:

Agora, após subir a aplicação hr-oauth, ela será responsável por conceder as devidas autorizações e permissões aos usuários cadastrados nas aplicações. Esse microserviço não precisa se preocupar com a porta em que está a ser executado, pois a nossa API Gateway fará o contato com a porta aleatória do serviço.

hr-payroll:

hr-payroll e aplicação é bastante simples; ela visa calcular o salário que o trabalhador receberá com base na quantidade de dias trabalhados.

  • Endpoint:
GET /payments/{workerId}/days/{days}
Parâmetro Tipo Descrição
workerId Long ID do trabalhador.
days Integer Número de dias trabalhados..

Resposta de exemplo:

{
  "workerId": 123,
  "daysWorked": 10,
  "totalPayment": 500.00
}

hr-user:

O microserviço hr-user é responsável por estabelecer a relação entre o usuário cadastrado e suas respectivas autorizações e permissões.

  • Endpoint:
GET /users/{id}
Parâmetro Tipo Descrição
id Long ID do usuário.

Resposta de exemplo:

{
  "id": 1,
  "name": "Claudio Dantas",
  "email": "[email protected]",
  "password": "0ec09ef9836da03f1add21e3ef607627e687e790",
  "roles": ["ROLE_USER"]
}
GET /users/search?email=${email}
Parâmetro Tipo Descrição
email string email do usuário.

Resposta de exemplo:

{
  "id": 2,
  "name": "Josuelen Dantas",
  "email": "[email protected]",
  "password": "0ec09ef9836da03f1add21e3ef607627e687e790",
  "roles": ["ROLE_USER", "ROLE_ADMIN"]
}

Use essa query para o banco de dados para poder adicionar usuarios para testes.

INSERT INTO tb_user (name, email, password) VALUES ('Nina Brown', '[email protected]', '$2a$10$NYFZ/8WaQ3Qb6FCs.00jce4nxX9w7AkgWVsQCG6oUwTAcZqP9Flqu');
INSERT INTO tb_user (name, email, password) VALUES ('Leia Red', '[email protected]', '$2a$10$NYFZ/8WaQ3Qb6FCs.00jce4nxX9w7AkgWVsQCG6oUwTAcZqP9Flqu');


INSERT INTO tb_role (role_name) VALUES ('ROLE_OPERATOR');
INSERT INTO tb_role (role_name) VALUES ('ROLE_ADMIN');


INSERT INTO tb_user_role (user_id, role_id) VALUES (1, 1);
INSERT INTO tb_user_role (user_id, role_id) VALUES (2, 1);
INSERT INTO tb_user_role (user_id, role_id) VALUES (2, 2);

hr-worker:

O microserviço hr-worker é responsável por retornar os trabalhadores cadastrados.

  • Endpoint:
GET /workers

Resposta de exemplo:

[
  {
    "id": 1,
    "name": "Claudio Dantas",
    "dailyIncome": 55.32
  },
  {
    "id": 2,
    "name": "Ferdnandis Dantas",
    "dailyIncome": 33.29
  }
]
GET /workers/{id}
Parâmetro Tipo Descrição
id Long ID do usuário.

Resposta de exemplo:

{
  "id": 1,
  "name": "Claudio Dantas",
  "dailyIncome": 55.32
}

Postman Setup

Postman collection

Postman environment

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published