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).

destination options

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.

destination custom entire url
destination custom host
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.

destination environment variable1
destination environment variable
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.

destination extra field

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).

destination app
destination token
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.

Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]