Destination

El interceptor Destination redirige llamadas para una nueva dirección a partir de valores contenidos en variables de entorno (environment variables), extra field de apps y/o tokens de acceso o mediante la introducción manual de una nueva dirección.

Dado que cambia el destino de una petición, sólo se puede añadir al flujo de request, no al de respuesta.

A diferencia de los interceptores de tipo Mediation, que invocan una nueva llamada a un destino preconfigurado, este interceptor sólo cambia el destino de una petición entrante. Es muy útil cuando, por ejemplo, se desea probar un backend diferente para un determinado Plan. En este caso, en lugar de añadirlo al flujo de una API, puede insertarlo en el flujo de un plan vinculado a una API.

Configuración del interceptor

Para configurar el interceptor, es necesario informar donde se pasará la nueva URL, como se muestra en la imagen siguiente. Las opciones son: Environment Variable, Apps, Access Tokens o Custom (es decir, opción personalizada).

destination options

Custom

La opción Custom es la manera más fácil de atribuir una nueva dirección a una petición.

Hay dos pestañas para la inserción de la URL: Entire URL y Host. Las pestañas permiten elegir si la nueva URL modificará solamente el host de la petición (opción Host), o si la antigua dirección será totalmente sustituida por la actual (insertando una URL completa en la pestaña Entire URL).

Después de la elección del tipo de redireccionamiento, inserte una URL válida en el campo URL de la respectiva pestaña.

destination custom entire url
destination custom host
Cuando es escogida la opción Host, sólo se aceptará una URL con protocolo y host, como https://sensedia.com.

Environment Variable

Environment Variables (o variables de entorno) son campos ya preconfigurados en cada entorno, haciendo que la variable tenga valores diferentes en cada entorno en el que se despliega una API.

Para insertar la nueva URL de destino, es necesario que la nueva URL sea insertada en una variable de entorno En la ventana de configuración del interceptor, el nombre de esta variable debe ser en informado en el campo Variable, siempre con el símbolo $ para identificar la variable.

En el ejemplo a continuación, estamos incluyendo la variable $variableName y la URL se registra como el valor de la variable, en el campo Environment Variables del entorno.

destination environment variable1
destination environment variable
En el caso de URL desde environment variables, todos los entornos registrados deben contener la variable utilizada dentro de sus environment variables. De lo contrario, la configuración de la URL no se guardará.

Apps y access tokens

Tanto apps (aplicaciones) como access tokens (tokens de acceso) pueden tener extra fields — campos adicionales que pueden almacenar pares de clave y valor.

Para configurar el interceptor, es necesario que el extra field que contiene la URL como valor debe haber sido insertado en el registro de la app o token de acceso y, después, debemos hacer referencia a este extra field al cadastrar el interceptor.

Supongamos, por ejemplo, que queremos hacer referencia a un extra field llamado destinationURL. Él debe ser registrado en los extra fields de un access token o app, como en la imagen de abajo.

destination extra field

Después, debemos hacer referencia a él en el campo Extra Field de la ventana modal de configuración del interceptor, como en las imágenes de abajo (respectivamente, tomando la información de apps y access tokens).

destination app
destination token

Detalles

  • Algunos campos para configurar el interceptor requieren URL válidas para la redirección correcta de las llamadas. Las URL válidas incluyen: protocolo de comunicación (ejemplo: https://), host (ejemplo: supermock.demo.sensedia.com) y ruta (ejemplo: /api-manager/apis/v3), formando una URL como: https://supermock.demo.sensedia.com/api-manager/apis/v3.

  • En el caso que la URL insertada sea inválida o la variable no sea encontrada, el interceptor continuará la llamada a la dirección inicial (sin desviar la ruta de la petición), y lanzará un mensaje en el Trace.

Thanks for your feedback!
EDIT

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