Destination
O interceptor Destination permite redirecionar uma requisição a um outro destino com base em valores contidos em variáveis de ambiente, extra field de apps ou access tokens ou por inserção manual de um novo endereço.
Como ele modifica o destino da requisição, só pode ser adicionado ao fluxo de requisição, não ao de resposta.
Diferente dos interceptores de Mediation, que invocam uma nova chamada para um destino pré-configurado, o Destination somente muda o destino da requisição. Ele é bastante útil quando, por exemplo, você quiser testar um backend diferente para um Plano específico. Nesse caso, ao invés de adicionar o interceptor a uma API, você pode inseri-lo ao fluxo de um plano vinculado a uma API. |
Configurando o interceptor
Para configurar o interceptor, é necessário escolher onde a URL para desvio será passada, conforme a imagem abaixo. As opções são: Environment Variable, Apps, Access Tokens e Custom (ou seja, opção personalizada).
Custom
A opção Custom é a maneira mais simples de atribuir um novo endereço para a requisição.
Há duas abas para inserção da URL: Entire URL e Host. As abas permitem escolher se o novo destino irá alterar apenas o host da requisição (aba Host) ou se o antigo endereço será totalmente substituido pelo atual (inserindo uma nova URL completa na aba Entire URL).
Após a escolha do tipo de redirecionamento, basta inserir uma URL válida no campo URL da respectiva aba.
Se escolhida a opção Host, apenas serão aceitas URLs compostas por protocolo e host, como https://sensedia.com .
|
Environment Variable
Environment Variables são campos pré-configurados em cada ambiente, permitindo com que variáveis tenham valores diferentes para cada ambiente em que uma API esteja implantada.
Para inserir a nova URL de destino, é necessário que a URL esteja cadastrada em uma variável de ambiente. Na janela de configuração do interceptor, o nome da variável deve ser referenciado no campo Variable, sempre incluindo o cifrão ($) para identificar a variável.
No exemplo abaixo, estamos referenciando a variável $variableName
, e a URL está cadastrada como valor da variável no campo Environment Variables do ambiente.
No caso de URL por environment variable, é necessário que todos os ambientes cadastrados possuem a variável utilizada dentro de seus environment variables. Caso contrário, a configuração de URL não será salva. |
Apps e access tokens
Tanto apps quanto access tokens podem possuir extra fields — campos extras que podem guardar pares de chave e valor.
Para configurar o interceptor, é necessário que o extra field contendo a URL como valor tenha sido cadastrado nas informações da app ou access token e, então, é preciso referenciar esse extra field nos dados do interceptor.
Imagine, por exemplo que queiramos referenciar um extra field de nome destinationURL
.
Ele deve estar cadastrado nos extra fields de um access token ou de uma app, como na imagem abaixo.
Então, devemos referenciá-lo no campo Extra Field na janela de configuração do interceptor, como as imagens abaixo (respectivamente, retirando a informação de apps e access tokens).
Para que o interceptor funcione apropriadamente é necessário cadastrar um valor com host e path no extra field vinculado à app ou access token. Caso não haja path especificado no extra field, o fluxo será corretamente direcionado para o host do interceptor porém com o path indicado na target destination. Além disso, caso nenhum path for especificado durante todo o fluxo de sua API, o interceptor direcionará normalmente o fluxo para o host cadastrado no extra field. |
Observações
-
Alguns campos deste interceptor requerem URLs válidas para o redirecionamento correto de suas chamadas. URLs válidas possuem: protocolo de comunicação (ex.:
https://
), host (ex.:example.demo.sensedia.com
) e path (ex.:/api-manager/apis/v3
), criando uma URL como:https://example.demo.sensedia.com/api-manager/apis/v3
. -
Caso a URL inserida for inválida ou a variável não for encontrada, o interceptor continuará a chamada para o ponto de destino inicial (sem desviar a requisição) e lançara uma mensagem no Trace.
Share your suggestions with us!
Click here and then [+ Submit idea]