Data de elaboração | 28/03/2025 |
Responsável pelo estudo | Taillon Miguel Gonçalves Neves Raposo |
Equipe do estudo | Tropa de Elite |
Alvo | Portal do Servidor e Governa API |
Origem | Análise técnica para melhoria de integração e robustez na comunicação com a API do Governa |
Objetivo | Identificar inconsistências, gargalos e oportunidades de aprimoramento no consumo dos endpoints da API Governa, visando aumentar a confiabilidade, desempenho e segurança da aplicação. |
Este estudo analisa os endpoints consumidos pela API Governa no contexto do Portal do Servidor, abrangendo os serviços que realizam chamadas HTTP, processam os dados e entregam ViewModels para geração de PDF. A avaliação contempla desde a construção das requisições até o tratamento de erros e logging. O objetivo é evidenciar melhorias que promovam manutenibilidade, performance, segurança e boas práticas.
A integração com a API Governa é utilizada para consultar relatórios financeiros de servidores (Contracheque, Cédula C, Ficha Financeira Anual). O fluxo inicia na controller, passando pela validação da entrada, consumo do endpoint através da classe ApiGoverna
, análise da resposta e retorno de um DTO. Em seguida, a View é renderizada para PDF.
/api/contracheque/matricula
ContrcheqPorMatrcRequestDto
contendo matrícula, mês/ano e tipoPagamentoContrachequeDto
com preenchimento de MesReferencia
/api/rendimento/{ano}/{matricula}
CedulaCDto
, sendo utilizada apenas a primeira posição/api/fichafinanceira/{ano}/{matricula}
FichaFinanceiraAnualDto
com preenchimento de AnoReferencia
A classe ApiGoverna
abstrai toda a comunicação com a API, utilizando o IHttpHelperServico
para chamadas HTTP. Cada método trata o HttpStatusCode
, realiza o DeserializeObject
, e encapsula os dados ou mensagens de erro em um DTO de resultado.
try/catch
, e erros retornam objetos RequestErrorDto
Três ações POST (Contracheque, CedulaC, FichaAnual) realizam:
MatriculaValida()
apiGoverna.BuscarXYZ()
Erro.Title
e Erro.Detail
ControllerExtension.RenderViewAsync
File(...)
try/catch
com lógica repetidaTratarResposta<T>()
para padronizar a desserialização e tratamento de erros HTTPSystem.Text.Json
por performance e integração nativa com .NET CoreA integração com a API Governa está funcional, mas carece de abstrações reutilizáveis, padronização de tratamento de erros, logging estruturado e validações mais robustas de entrada. A criação de métodos genéricos para tratar respostas, uso de mapeadores, melhorias de performance com cache, e log estruturado com Serilog podem elevar significativamente a qualidade técnica, performance e confiabilidade da solução.