Ejemplo: Multicontexto con API Gateway

Este ejemplo ilustra la creación de un flujo multicontexto a partir de llamadas en un API Gateway. Los contextos se informan a través de los datos proporcionados en la llamada.


Definición del Flujo

Esta integración tiene como objetivo disponibilizar la información meteorológica almacenada en una base de datos Postgres mediante una llamada REST configurada en el API Gateway de Skyone Studio. Utilizaremos como base la base de datos generada a partir de la integración Ejemplo: Multicontexto con Gatilho Temporal.

Inicialmente, esta integración se construirá para acceder solo a una base de datos para un único usuario. Luego, extenderemos la misma integración para que múltiples usuarios puedan acceder proporcionando únicamente su userid. Esta será la información utilizada para identificar el contexto, y así, Skyone Studio podrá acceder a la base de datos correcta de cada usuario.


Pasos

[ Paso 01 ] Crear el flujo monocontexto original [ Paso 02 ] Insertar la variable que definirá el contexto [ Paso 03 ] Insertar el Context Finder [ Paso 04 ] Actualizar el módulo Postgres para utilizar las cuentas de acceso según el contexto [ Paso 05 ] Configurar las cuentas de acceso a la base de datos [ Paso 06 ] Crear los contextos [ Paso 07 ] Asociar las cuentas a los contextos [ Paso 08 ] Invocar el flujo con información de contexto


Paso a Paso

Paso 01: Crear un flujo monocontexto original

Este flujo se activa mediante una solicitud a través del API Gateway. La solicitud debe contener en el Query String únicamente la cantidad de últimas muestras que se recuperarán de la base de datos. La respuesta contiene las muestras, así como algunos datos de promedio de temperatura y humedad calculados por Skyone Studio.

Llamada para activar el flujo:

Esta llamada dispara la recuperación de los últimos 100 registros almacenados en la base de datos del usuario. Estos registros se retornan junto con los promedios de temperatura y humedad.


Paso 02: Insertar la variable que definirá el contexto

En este caso, utilizaremos información proveniente de la propia llamada de la API para definir cuál será el contexto. Para esto, modificaremos el Query String del Trigger API para que esté preparado para recibir el userid. Esta será la variable utilizada para definir el contexto. Cada userid corresponderá a una cuenta específica en la base de datos.

userid como parte del Query Con esta modificación, utilizaremos una información externa para definir el contexto que se empleará.


Paso 03: Insertar el Context Finder

El Context Finder utilizará la variable de definición de contexto (userid) para localizar la cuenta de la base de datos que se usará para recuperar los registros meteorológicos.

El Context Finder debe insertarse justo después del Trigger API para que pueda usar la información de la llamada del trigger y así identificar el contexto.

Indicaremos la información del userid, que está dentro del query string, como parámetro de identificación del contexto.


Paso 04: Actualiza el módulo Postgres para utilizar las cuentas de acceso de acuerdo con el contexto.

Regresa a la configuración del módulo Postgres y activa la opción "Utilizar contexto en este componente".

Por defecto, Skyone Studio utilizará la cuenta que ya estaba configurada como cuenta Default.

Debes hacer clic en "Siguiente". Selecciona el contexto y ejecuta una prueba de la nueva configuración. Como ya habías ejecutado este flujo en monocontexto, Skyone Studio utilizará la cuenta original como la cuenta predeterminada.


Paso 05: Configurar las cuentas de acceso a la base de datos

Cada contexto deberá tener su cuenta específica asociada.

Crea las cuentas de base de datos en Configuraciones → Cuentas Conectadas.


Paso 06: Crear los contextos

Crea un contexto para cada usuario que accederá al sistema.

Desde la página de edición de flujo, haz clic en "Contexto". Añade tantos contextos como sea necesario y especifica el valor de la clave asociada a cada contexto.


Paso 07: Asociar las cuentas a los contextos

Para cada contexto, asocia la cuenta respectiva del módulo Postgres.

En Contexto, edita cada contexto, selecciona la pestaña Cuentas Conectadas y elige la cuenta correspondiente.


Paso 08: Invocar el flujo con información de contexto

Proporciona el userid en la llamada API que invoca el flujo.

En tu software de llamadas API, especifica el valor del userid. Utiliza uno de los valores definidos al crear los contextos.

Observa que ahora se proporcionan dos valores para la ejecución del flujo. El valor de n especifica la cantidad de muestras que se recuperarán y el valor de userid especifica el contexto y, por lo tanto, qué base de datos se seleccionará.

Podemos verificar el correcto funcionamiento del Context Finder mediante los logs de ejecución.

Last updated