Internal API Call

O interceptor Internal API Call permite invocar uma chamada interna com base nas configurações estabelecidas.

Exemplo de uso:

Imagine que, para uma determinada API chamada "ConsultaInformacaoVenda", você necessite que a requisição passe por uma autenticação simples de login/senha. Você já tem uma API para esse tipo de autenticação, chamada "AutenticaUsuario", que deve estar cadastrada previamente.

Como você já tem uma API exposta ("ConsultaInformacaoVenda") e também já conta com uma API que faz todo o controle de autenticação, não se faz necessário replicarmos a lógica de autenticação para dentro do fluxo da API exposta. Ao invés disso, podemos adicionar o interceptor API Internal Call no fluxo da API "ConsultaInformacaoVenda", que redirecionará as requisições da "ConsultaInformacaoVenda" para a "AutenticaUsuario". Com base no retorno da autenticação — $call.contextVariables.get("Variable Name") — o interceptor então decidirá se irá continuar ou abortar o processo.

Configurando o interceptor

As imagens abaixo apresentam as informações que devem ser preenchidas para configurar o interceptor:

internal api call
  • Variable Name: define o nome do interceptor Internal API Call, sendo único por fluxo. É através desta nomenclatura que o interceptor é recuperado dentro do objeto $call.contextVariables.get(“Variable Name”).

  • API: API que será invocada.

  • Revision: revisão da API que será invocada.

  • Resource: recurso a ser invocado.

  • Operation: operação a ser realizada.

Só é possível invocar uma API que esteja implantada no mesmo ambiente da API em cujo fluxo você está adicionando o interceptor.

Se pensarmos nas APIs do exemplo de uso acima, para chamar a API "AutenticaUsuario" é necessário que ela esteja implantada no mesmo ambiente que a API "ConsultaInformacaoVenda", que é a API que contém o interceptor Internal API Call.

Se você quiser invocar uma API que não esteja implantada no mesmo ambiente, primeiro faça o deploy dela no ambiente desejado. Lembre-se que é possível implantar uma API em mais de um ambiente ao mesmo tempo. Você pode ler mais sobre como fazer o deploy de APIs aqui.

  • Preserve Query String: se a opção for marcada, a query string presente na requisição será repassada para a API que será chamada internamente.

  • Query: permite a inserção de query string.

  • Preserve Path Param: se a opção for marcada, o path param presente na requisição será repassado para a API que será chamada internamente.

  • Path Param: permite a inserção de path param.

  • Preserve Body: se a opção for marcada, o body contido na requisição será repassado para a API que será chamada internamente. O campo é habilitado quando o método for diferente de GET.

  • Body: permite a inserção de um body. O campo é habilitado quando o método for diferente de GET e o campo Preserve Body estiver desmarcado.

  • Preserve Headers: se marcado, os headers presentes na requisição serão repassados para a API que será chamada internamente.

  • Headers: permite a inserção de headers.

Execução

O gateway executa o Internal API Call e o resultado é adicionado ao objeto $call.contextVariables do gateway. Para recuperar o resultado por um custom interceptor, utilize $call.contextVariables.get(“Variable Name”).

A chamada para o $call.contextVariables.get irá retornar um objeto do tipo RestResponse.

Thanks for your feedback!
EDIT
How useful was this article to you?