Utilizar um mesmo interceptor nos flows de Request e Response

Temos no fluxo das APIs a funcionalidade de transformar os dados das requisições conforme nossa necessidade de negócio e, através dos custom interceptors de javascript, temos ainda mais poder de personalizar as chamadas.

Em várias situações criamos um Custom Interceptor para executar instruções no flow de resquest e outro Custom Interceptor no flow de response.

Temos como sugestão de organização destas transformações de negócio, via Custom Interceptor,  controlar por um mesmo Interceptor o comportamento esperado para o fluxo de request e o fluxo de response.

Em alguns casos, quando existem várias APIs com várias operações, a quantidade de Custom Interceptors cresce e, graças a flexibilidade da funcionalidade e das implementações em JavaScript temos essa opção para organizar.

O código abaixo é utilizado, no Custom Interceptor, tanto flow de request e response.

try {

   //Verifica se o interceptor está no fluxo de request através do objeto $call

   if (($call.request !== null) || ($call.request !== "undefined")) {

       onRequestProcess();

       //Verifica se o interceptor está no fluxo de response através do objeto $call

   } else if (($call.response !== null) && ($call.response !== "undefined")) {

       onResponseProcess();

   }

} catch (ex) {

   $call.tracer.trace(ex);

}

//Função com o código executado na request da chamada

function onRequestProcess() {

   $call.tracer.trace("Fluxo no request da chamada");

}

//Função com o código executado no response

function onResponseProcess() {

   $call.tracer.trace("Fluxo no response da chamada");

}

Verificamos na execução do fluxo as mensagens configuradas no interceptor para cada fluxo.

Dessa forma, ao invés de nomearmos o Interceptor dependendo do flow que ele está (Ex.: InterceptorRequest ou InterceptorResponse), podemos colocar um nome mais adequado ao negócio.

Tem mais dúvidas? Envie uma solicitação

Comentários

Powered by Zendesk