Validação de Duplicidade de Métodos de API TLPP com Annotation

Em um determinado processo de deploy tivemos uma situação em que um fonte antigo de API tlpp não foi removido do repositório de fontes e o projeto foi compilado na íntegra, ficando 2 fontes com a mesma definição de método e endpoint de uma determinada API TLPP.

Com isso na carga do Serviço do WS REST com esse RPO tivemos a seguinte mensagem de erro fatal:

[FATAL][SERVER] 14/11/2023 16:21:46[Thread 10768] [THROW] HTTP Server - error, duplicated method, environment: PRODUCAO, URN: /url/api/v3/Processo, method: POST, program: API.RESTV3.TLPP, function: API.U_APIPOSTDATA.

Nota: Nome do Ambiente, URL, Programa e Função apenas ilustrativo, mas ocorreu com fontes reais em TLPP.

Com isso todas as APIs TLPPs que o WS REST respondia pararam de responder aos consumidores. Ou seja, o problema acima não afetou somente a API em questão e sim todas as APIs do ambiente.

Como esse problema não foi imediatamente descoberto (Pela avaliação do log do Appserver - São vários appservers slaves no Ambiente), houve um rollback do RPO e o processo voltou a operar e o time de infraservices ficou confuso com relação ao problema.

A questão foi que a compilação valida se uma User Function ou Function está sendo duplicada, mas não valida se um EndPoint e Método TLPP com Annotation está sendo duplicado na compilação, causando uma falha geral nas APIs Protheus.

A pergunta é: Seria possível travarmos na compilação essa duplicidade?

Sugestões:

Uma sugestão seria uma Melhoria no Linter TOTVS para não permitir que o fonte com annotation duplicado fosse compilado.

Outra sugestão que o AppServer não deixasse de responder as demais APIs por conta de um erro de duplicidade de anottation de um único processo.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags annotation api tlpp duplicidade compilacao linter ou faça a sua própria pergunta.