Exemplo: Multicontexto com API Gateway

Este exemplo ilustra a criação de um fluxo multicontexto a partir de chamadas em um API Gateway. Os contextos são informados através de dados fornecidos na chamada.


Definição do Fluxo

Essa integração visa disponibilizar as informações meteorológicas que estão armazenadas em um banco de dados Postgres através de uma chamada REST configurada no API Gateway da plataforma. Vamos utilizar como base o banco de dados gerado a partir da integração Exemplo: Multicontexto com Gatilho Temporal.

Inicialmente essa integração será construído para acessar apenas um banco de dados para um único usuário. Em seguida, vamos estender a mesma integração para que múltiplos usuários possam acessá-la fornecendo apenas o seu userid. Essa será a informação utilizada para identificarmos o contexto e, com isso, a plataforma pode acessar o banco de dados correto de cada usuário.


Passos


Passo a Passo

Passo 01: Crie um fluxo monocontexto original

Esse fluxo é ativado por uma requisição através do API Gateway. A requisição deve conter no Query String apenas a quantidade de últimas amostras que serão recuperadas do banco de dados. A resposta contém as amostras bem com alguns dados de média de temperatura e humidade que são calculados pela própria plataforma.

Chamada para acionar o fluxo:

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

Essa chamada dispara a recuperação dos últimos 100 registros armazenados no banco de dados do usuário. Esses registros são retornados, bem com a média das temperatura e da humidade.

Passo 02: Insira a variável que definirá o contexto

Neste caso utilizaremos uma informação que virá na própria chamada da API para definir qual será o contexto. Para isso modificaremos o Query String do Gatilho API para que esteja preparado para receber o userid. Essa será a variável utilizadas para definir o contexto. Cada userid corresponderá a uma conta específica no banco de dados.

userid como parte do Query

Com essa modificação vamos utilizar uma informação externa para definir o contexto que será utilizado.

Passo 03: Insira o Context Finder

O "Context Finder" utilizará a variável de definição de contexto (userid) para localizar a conta do banco de dados que será utilizada para recuperar os registros meteorológicos.

O Context Finder dever ser inserido logo após o Gatilho API para que possa utilizar a informação que vem na chamada do gatilho para identificar o contexto

Inserção do Context Finder

E vamos indicar a informação do userid, que está dentro do query string, como parâmetro de identificação de contexto.

userid como chave para o Context Finder

Passo 04: Atualize o módulo Postgres para utilizar as contas de acesso de acordo com o contexto.

Volte na configuração do módulo Postgres e ative a opção "Utilizar contexto neste componente".

Por padrão, a plataforma utilizará a conta que já estava configurada como conta Default.

Reconfiguração para utilização de contas de acordo com contexto

Você deve clicar em "Próximo". Selecione o contexto e execute um teste da nova configuração. Como você já tinha executado esse fluxo em monocontexto, a plataforma utilizará a conta original como sendo a conta padrão.

Executando uma conta padrão

Passo 05: Configure as contas de acesso ao banco de dados.

Cada um dos contextos deverá ter a sua conta específica associada.

Crie as contas de banco de dados em Configurações → Contas conectadas.

Passo 06: Crie os contextos

Crie um contexto para cada usuário que for acessar o sistema.

A partir da página de edição de fluxo, clique em "Contexto". Adicione quantos contextos forem necessários e especifique o valor da chave associada a cada contexto.

Passo 07: Associe as contas aos contextos

Para cada um dos contextos associe a conta respectiva do módulo Postgres.

Em Contexto, edite cada um dos contextos. Selecione a aba Contas Conectadas e selecione a conta respectiva.

Passo 08: Chame o fluxo com informação de contexto

Informe o userid na chamada da API que invoca o fluxo.

Em seu software de chamada de API especifique o valor do userid. Utilize um dos valores especificados na criação do contexto.

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

Observe que agora são fornecidos dois valores para a execução do fluxo. O valor de n especifica a quantidade de amostras que serão recuperadas e o valore de userid especifica o contexto e portanto qual banco de dados será selecionado.

Observe que podemos identificar o correto funcionamento do Context Finder através dos logs de execução.

Last updated