Ir para o conteúdo principal

Diminuir o acoplamento entre as apis de serviço e solicitação no Alpha


Data de elaboração  03/11/21
Responsável pelo estudo


  1. Rafael Passos dos Santos (Assessor)
Equipe do estudo
  1. Gustavo Felix Gomes (Assessor)
  2. Rafael Passos dos Santos (Assessor)
  3. André Honório de Andrade Silva (Tecnico)
  4. Emanuel Rufino Alcantara de Lima (Analista)
  5. Lucas de Souza e Sousa (Estagiario)
  6. Euriane Nogueira (Product Owner)
Alvo Alpha
Origem

Diminuir o acoplamento entre as apis de serviço e solicitação no Alpha

Objetivo Identificar as possíveis melhorias para diminuir o acoplamento entre as apis de serviço e solicitação do Alpha.
Documentação correlata
Observações O presente estudo pretende também levantar as Historias dos cars para a Sprint 

1. Objetivo

Identificar as possíveis melhorias para diminuir o acoplamento entre as apis de serviço e solicitação do Alpha.

2. Introdução

Após a refatoração do Alpha, espera-se que as apis trabalhem de forma autônoma, porém a api de solicitação depende de alguns dados da api de serviços para realizar alguns cálculos e listagens. Caso a api de serviços fique fora, a api de solicitação não consegue efetuar esses cálculos. Este estudo visa encontrar uma forma de minimizar esses impactos.

3. Desenvolvimento - Diminuir o acoplamento entre as apis de serviço e solicitação no Alpha

3.1 Cenário atual

Após a refatoração, o alphaApi que era uma junção do alphasolicitacoesapi e do cartadeServicosApi foi desmembrado, porém algumas funcionalidades necessitam de integração entre essas duas apis. As funcionalidades são apresentadas abaixo:

3.1.1 LOCAIS AFETADOS

  • SOLICITACAOSERVICE -> CALCULAR SITUACAO DO ATENDIMENTO (UTILIZADO NO ALPHA E NO PORTAL DO SERVIDOR/CIDADÃO)

Neste método é feita uma consulta a API de serviços para obter a forma de atendimento para então ser feito o cálculo do prazo final de atendimento.

Solução 

Para este caso, é possível criar um campo que guarde a data final do prazo de atendimento. Este campo seria preenchido na criação da solicitação e só seria feita a busca na API de serviços uma vez. Com esta solução também haveria melhoria na performance, pois essa consulta é utilizada na listagem de solicitações do portal do servidor, então para cada solicitação uma busca na API é feita.

  • SOLICITACAOSERVICE -> OBTER SOLICITAÇÕES POR CPF (NO PORTAL DO SERVIDOR/CIDADÃO)

Este método utiliza a rota "ObterServicoPorId" que traz os detalhes do serviço da solicitação. Esta busca é feita para calcular a situação do atendimento.

Solução

Com a solução anterior é possível eliminar esta busca, visto que a data final estaria gravada na api de solicitações

  • SOLICITACAODOSERVIDORREPOSITORY -> OBTER SOLICITAÇÕES POR UNIDADE ORÇAMENTARIA (UTILIZADO NO ALPHA)

Neste método é feita uma consulta a API para obter quais são os serviços de RH

Solução

Para este caso, não foi encontrado solução, pois é necessário buscar todos os serviços que são de RH


  • SOLICITACAODOSERVIDORREPOSITORY -> OBTER SOLICITAÇÕES POR DEPARTAMENTO (UTILIZADO NO ALPHA)

Neste método é feita uma consulta a API para obter quais são os serviços do servidor de um determinado departamento.

Solução

Para este caso, não foi encontrado solução, pois é necessário buscar todos os serviços que são de departamento


  • SOLICITACAODOCIDADAOREPOSITORY -> OBTER SOLICITAÇÕES POR DEPARTAMENTO (UTILIZADO NO ALPHA)

Neste método é feita uma consulta a API para obter quais são os serviços do cidadão de um determinado departamento.

Solução

Para este caso, não foi encontrado solução, pois é necessário buscar todos os serviços que são de departamento


  • SOLICITACAOSERVICE -> OBTER PRAZO PARA SISTEMA EXTERNO (UTILIZADO NO PORTAL DO SERVIDOR)

Neste método é feita uma consulta a API para trazer os detalhes do serviço de solicitações externas ao GCS. Esta consulta também serve para calcular o prazo de atendimento.

Solução

Para este caso, poderia não mostrar o prazo de atendimento ou gravar as solicitações de outros sistemas na base do alpha.


3.2 Histórias previstas

Título Pontos da História
(Debito Técnico) Gravar a informação da data final na solicitação de serviço 5
(Debito Técnico) Calcular a data final do prazo para a realização do serviço 5
Total 10 pontos

3.3 GLOSSÁRIO:

UX, User Experience, Experiência do Usuário.

4. Conclusão

As soluções apresentadas diminuem o acoplamento entre as apis e também visa deixar os portais do servidor e do cidadão online. No caso do alpha, as funcionalidades apresentadas dependem das informações dos serviços, por isso, não seria possível desacoplar.


Elaborado em 03 de novembro de 2021.
-