> For the complete documentation index, see [llms.txt](https://docs.skyone.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skyone.cloud/espanol/skyone-studio/integraciones/flujos/gestion-de-los-flujos/flow-canva-configuracion-y-edicion-del-flujo/flujos-multicontexto/ejemplo-multicontexto-con-api-gateway.md).

# 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**](/espanol/skyone-studio/integraciones/flujos/gestion-de-los-flujos/flow-canva-configuracion-y-edicion-del-flujo/flujos-multicontexto/ejemplo-multicontexto-con-disparador-temporal.md).

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.

<figure><img src="/files/FnRU49ASIc5KGL7ye1fs" alt=""><figcaption></figcaption></figure>

***

#### Pasos

[**\[ Paso 01 \]** Crear el flujo monocontexto original](#paso-01-crear-un-flujo-monocontexto-original)\
[**\[ Paso 02 \]** Insertar la variable que definirá el contexto](#paso-02-insertar-la-variable-que-definira-el-contexto)\
[**\[ Paso 03 \]** Insertar el *Context Finder*](#paso-03-insertar-el-context-finder)\
[**\[ Paso 04 \]** Actualizar el módulo Postgres para utilizar las cuentas de acceso según el contexto](#paso-04-actualiza-el-modulo-postgres-para-utilizar-las-cuentas-de-acceso-de-acuerdo-con-el-contexto)\
[**\[ Paso 05 \]** Configurar las cuentas de acceso a la base de datos](#paso-05-configurar-las-cuentas-de-acceso-a-la-base-de-datos)\
[**\[ Paso 06 \]** Crear los contextos](#paso-06-crear-los-contextos)\
[**\[ Paso 07 \]** Asociar las cuentas a los contextos](#paso-07-asociar-las-cuentas-a-los-contextos)\
[**\[ Paso 08 \]** Invocar el flujo con información de contexto](#paso-08-invocar-el-flujo-con-informacion-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**.

<figure><img src="/files/GZngzBVvB3AU6Ut0KWmm" alt=""><figcaption></figcaption></figure>

Llamada para activar el flujo:

```
https://myspace.apihml.integrasky.cloud/eZB6Hf/weather/v1/mylocation?n=100
```

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.

<figure><img src="/files/uJKM8a6QDqlZmxm2j84Q" alt=""><figcaption></figcaption></figure>

**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&#x20;*****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.

<figure><img src="/files/5ZlCzZvEhxBjEnvo7iTs" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/djnzlgs2X73lwGAA96dj" alt=""><figcaption></figcaption></figure>

***

### **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*.

<figure><img src="/files/QKUEaJ8NIsUU7KWYuytL" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="/files/Mbi8Mkh357kHP23h4sKu" alt=""><figcaption></figcaption></figure>

***

### **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**.

<figure><img src="/files/3U0sFeVM1n3TXPLWhZdB" alt=""><figcaption></figcaption></figure>

***

### **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.

<figure><img src="/files/2SkePNaKjLsKobBkun7X" alt=""><figcaption></figcaption></figure>

***

### **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.

```
https://myspace.apihml.integrasky.cloud/eZB6Hf/weather/v1/mylocation?n=10&userid=0002
```

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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.skyone.cloud/espanol/skyone-studio/integraciones/flujos/gestion-de-los-flujos/flow-canva-configuracion-y-edicion-del-flujo/flujos-multicontexto/ejemplo-multicontexto-con-api-gateway.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
