Saltar a contenido

Json Web Request

Nombre del elemento: Json Web Request (Solicitud web Json / Servicios externos)

Categoría: Módulo de acción

Descripción: funcionalidad básica, permite identificación de nombre y selección de verbos http. Orientada al consumo de servicios REST API externos y recibe estructuras Json como respuesta.

Funcionalidad: Permite la llamada de servicios web externos para su consulta, se pueden especificar campos de llave valor pertenecientes a la estructura de encabezados, seleccionar el verbo HTTP orientado a CRUD, estructuras body con capacidad de contener entidades en expresiones de tipo texto, controlar el TO por defecto y todas las principales herramientas necesarias para la explotación de servicios web REST API y su interpretación, el resultado de la invocación es almacenado en una entidad de tipo string, indicada por el usuario.

Es importante tener en cuenta lo siguiente:

  • Debe tener en cuenta que existen limites en la carga y manejo de grandes volúmenes de datos provenientes del API, ejemplo: imágenes serializadas o multimedia en formatos de bajo nivel, estos límites pueden variar en función de la disponibilidad de recursos de la plataforma, de tener alguna consulta con archivos de alta resolución y su serialización consulte a nuestro equipo.

  • Debe tener en cuenta que Tiempos de desborde muy altos (TO) se traducirán en lentitud de respuesta en las interacciones de Chat.

Campos de configuración de acción Json Web Request

[Nombre] Descriptor único de caja de configuración con fines de identificar la misma en el flujo.

Subconjunto General

[Modo de Invocación] Define el modo de trabajo de la tecnología de comunicación implementada para la gestión de solicitudes salientes. (JREQUEST_INVOCATION_MODE)

Modos:

  • Normal (Defecto)

  • RelayWorker (Solo para integraciones con componente RelayWorker declarados). (Funciones Avanzada)

[Método HTTP] Lista de verbos de HTTP para invocación, orientado a CRUD.(Method)

Modos:

  • GET

  • POST

  • PUT

  • HEAD

  • DELETE

  • PATCH

[URL] URL donde se encuentra el servicio a consumir o gestionar, admite el formato de expresión de texto y también es referenciada como URL del servicio destino. (URLExpression)

-- Ejemplo de expresión que contiene URL y parámetros concatenados de entidades:

'http://api.openweathermap.org/data/2.5/weather?q=' + WeatherCityToFind + '&APPID=' + AppIDEnt |

[Encabezados] son parámetros lista que se definen como llave/valor y conforman datos de configuración del servicio externo. El campo clave permite la definición de valores planos y el campo valor permitirá el ingreso de expresiones de texto. Adicionalmente debe considerar que el encabezado de contenido tiene su propia sección de configuración explicada más adelante. (Headers)

[Cuerpo de Consulta] Este campo permite la configuración de expresiones de texto que conforman la consulta Body, normalmente son usadas expresiones planas o Json, recuerde que las mimas deben estar contenidas en una línea continua, puede usar herramientas web para transformar sus Json a dicho formato o simplemente eliminar los retornos de carro contenidos en dicha expresión. (BodyExpression)

[Encabezado Tipo de Contenido] En este campo se especifica mediante una expresión en tipo de contenido a transaccionar en el servicio. (ContentTypeExpression)

-- Ejemplo Content-Type:

    'application/json'

[Tiempo máximo de espera] El campo de tiempo máximo de espera (TO) se define por una expresión de texto que permite configurar en milisegundos cuanto tiempo debe esperar Lynn a la respuesta del servicio antes de que se considere la ausencia de respuesta un error de manejo. Este campo por defecto esta configurado en 100 segundos, lo que corresponde con su mayor valor de configuración. Es recomendable que establezca el valor acorde a las buenas prácticas y promedios de respuesta de su servicio. (TimeoutExpression)

-- Ejemplo:

Si su servicio responde en un lapso de 1 a 3 segundos establezca el valor en 3000 ms (3s) lo que garantizara que cualquier desviación no implique una sensación de degradación o perdida de datos en la consulta.

[Redirección] Este campo admite una expresión de texto para configurar un valor booleano, permite se ejecuten respuestas de redirección provenientes del servicio.(AllowAutoRedirectExpression)

[Resultado de consulta] Este campo aloja una expresión de texto que define la entidad que albergará la respuesta cedida del servicio externo consultado, recuerde que al tratarse de una expresión la definición de la entidad debe estar expresada como un literal entre comillas simples.(AllowAutoRedirectExpression)

[Manejador de errores] Caja de selección donde se identifica la intención que se activara en caso de presentarse un error en Json WebRequest. Al ejecutarse un desborde de error la entidad Json_Request_Error será cargada con el detalle de error si el mismo se encuentra disponible.

Ejemplo de implementación Json WebRequest

-- Ejemplo 1: Consultando la hora de mi ciudad

  • Entradas de datos:

    Método HTTP: GET

    URL: 'http://worldtimeapi.org/api/timezone/' + REGION + '/' + CITY

    Encabezado Tipo de Contenido: 'application/json'

    Tiempo máximo de espera: 3000

    Redirección: false

    Resultado de consulta: 'JsonWebRequestResult'

-- Resultado 1: obtenido en la entidad a definir en “Resultado de consulta”

Precondición: REGION -> America ; CITY -> Santiago

{  
    abbreviation: -03,  
    client_ip: 201.239.114.166,
    datetime: 2022-09-05T17:45:44.303664-03:00,  
    day_of_week: 1,
    day_of_year: 248,  
    dst: **true**,  
    dst_from: 2022-09-04T04:00:00+00:00,  
    dst_offset: 3600,  
    dst_until: 2023-04-02T03:00:00+00:00,  
    raw_offset: -14400,  
    timezone: America/Santiago, 
    unixtime: 1662410744, 
    utc_datetime: 2022-09-05T20:45:44.303664+00:00,  
    utc_offset: -03:00,
    week_number: 36 
}

Importante: Use la acción JPath para recuperar valores de la estructura Json a entidades o si se siente más cómodo o son varios campos de interés también puede usar la acción Code Block para esta misma acción.

Precondición: REGION -> America ; CITY -> Lima

{  
    abbreviation: -05,
    client_ip: 201.239.114.166,
    datetime: 2022-09-05T15:58:50.690683-05:00,
    day_of_week: 1,
    day_of_year: 248,  
    dst: **false**, 
    dst_from: **null**, 
    dst_offset: 0,
    dst_until: **null**, 
    raw_offset: -18000,  
    timezone: America/Lima, 
    unixtime: 1662411530, 
    utc_datetime: 2022-09-05T20:58:50.690683+00:00, 
    utc_offset: -05:00, 
    week_number: 36 
}

-- Ejemplo 2: Consulta de un servicio web externo del clima

  • Entradas de datos:

    Método HTTP: GET

    URL: 'http://api.openweathermap.org/data/2.5/weather?q=' + WeatherCityToFind + '&APPID=' + AppIDEnt

Encabezados:

Llave Valor
Connection keep-alive

Encabezado Tipo de Contenido: 'application/json'

Tiempo máximo de espera: 3000

Redirección: false

Resultado de consulta: 'JsonWebRequestResult'

Precondición: AppIDEnt -> 2602bf1d32a55b83834f3710a13f84a7 (Obtenga su propio AppID en openweathermap.org); WeatherCityToFind -> Santiago

-- Resultado 2: obtenido en la entidad a definir en “Resultado de consulta”:

{  
    coord: 
    {  
        lon: -70.6483,  
        lat: -33.4569  
    },  
    weather: [  
    {  
        id: 804,  
        main: Clouds,  
        description: overcast clouds,  
        icon: 04d  
    }  
    ],  
    base: stations,  
    main: 
    {  
        temp: 288.35,  
        feels_like: 287.34,  
        temp_min: 283.84,  
        temp_max: 290.92,  
        pressure: 1024,  
        humidity: 54  
    },  
    visibility: 7000,  
    wind: 
    {  
        speed: 2.06,  
        deg: 260  
    },  
    clouds: 
    {  all: 100  },  
    dt: 1662053921,  
    sys: 
    {  
        type: 2,  
        id: 2075413,  
        country: CL,  
        sunrise: 1662030043,  
        sunset: 1662071095  
    },  
    timezone: -14400,  
    id: 3871336,  
    name: Santiago,  
    cod: 200 
}

Funciones Avanzadas

-- Modo RelayWorker: Esta destinado a integraciones con la tecnología MS Relay para conseguir conexiones mas estables y privadas en casos de integraciones contra infra estructuras que se encuentran en redes privadas.

Campos de configuración de acción

Subconjunto Relay Worker

Los campos de configuración de este sub-Conjunto están asociados a la conexión Relay, es probable que adicionalmente debe establecer algunas configuraciones adicionales en las políticas de seguridad de su firewall y la instalación de cliente Relay AZ y sus respectivos componentes, consulte a nuestro representante comercial si desea saber más sobre las características de dichos elementos.

  • [URL] URL de conexión a enlace Relay

  • [Conexión Hibrida] Nombre que define el contexto del enlace Relay.

  • [Nombre de clave de políticas de acceso] Nombre de identificador del conjunto de políticas de acceso.

  • [Valor de clave principal] Nombre de la clave de conexión.