Exemplo: Multicontexto com API Gateway
Last updated
Last updated
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.
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: .
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
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:
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.
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.
Com essa modificação vamos utilizar uma informação externa para definir o contexto que será utilizado.
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
E vamos indicar a informação do userid, que está dentro do query string, como parâmetro de identificação de 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.
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.
Cada um dos contextos deverá ter a sua conta específica associada.
Crie as contas de banco de dados em Configurações → Contas conectadas.
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.
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.
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.
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.