Integração com API climática

Integração com API de Clima

Neste tutorial iremos seguir um passo-a-passo para criarmos uma integração utilizando o Bizagi Modeler (ferramenta gratuita de Business Process Model and Notation) , que consultará a temperatura atual de uma cidade.

O primeiro passo é possuir o Bizagi instalado, caso não tenha instalado, clique aqui.

Com o Bizagi já instalado, a próxima etapa é criar um novo modelo e importar os atributos da Sophie para o Bizagi. Para isso acesse a aba de Exportar/Importar no menu superior direito e clique na opção “Atributos”.

Selecione o arquivo Attribute,XML, e caso ainda não tenha baixado este arquivo, é possível encontrá-lo neste link. Ele irá importar as estruturas básicas do Bizagi com as alterações necessárias para integrar com a Sophie.

Com o Bizagi pronto para começarmos, precisamos buscar por uma API que consulte a temperatura. Neste tutorial utilizaremos a API do OpenWather, que nos permitirá consultar o clima de uma cidade.

Agora precisamos criar a estrutura da integração no modelo. Primeiro precisamos de um ponto Start.

Clique no círculo verde no menu lateral e o arraste para dentro do bloco na tela principal do Bizagi. Altere o nome do mesmo para “Start”, com o botão direito clique no círculo e abra suas propriedades e selecione a aba de “Estendido”.

Nesta aba existirá um campo chamado “context_varaiables”. Este campo irá nos trazer a cidade que o usuário gostaria de consultar a temperatura. É importante escolher bem o nome que será dado a variável pois ele precisará ser escrito de maneira idêntica em todos os lugares que for utilizado

Neste tutorial iremos preencher este campo com o valor “city:city”, isto significa que a variável na Sophie se chamará “city” e a variável também se chamará “city”.

Em seguida clique sobre o círculo e clique no balão azul.

Isso fará com que um balão seja criado e ligado ao “Start”.

Altere o nome do balão para “Chamada da API” e clique no losango amarelo e em seguida crie dois círculos vermelhos.

A estrutura final desta integração ficará assim:

Agora necessitamos configurar a integração, para isso clique com o botão direito no balão azul, e em seguida “Propriedades”. Uma tela à sua direita deverá ser aberta.

Selecione a aba “Estendido”.

Aqui será preciso preencher alguns campos, como method, use_credential, url, dynamic_data, static_data e return_variable.

O campo method define qual método HTTP será utilizado para fazer a requisição para a URL, no nosso caso será GET, então não será necessário utilizarmos uma credencial nestea integração, logo o campo use_credential será “False”.

O campor “URL” será preenchido pela URL da API do Open Weather.

O campo “dynamic_data” guardará as informações que serão dinâmicas durante uma consulta na API, no caso o nome da cidade.

Para montarmos nossa requisição precisamos preencher os campos requisitados pela documentação da API, neste caso o campo “q” é preenchido com o nome da cidade que queremos consultar, desta forma este campo será preenchido com “q:city”.

Já o campo “static_data” será usado para passar as informações que serão estáticas nas requisições para a API.

“APPID” é a chave da API, isto faz com que seja necessário criar uma conta no site OpenWeather para receber um valor válido para ser inserido neste campo. Logo abaixo também existe o valor units, este valor pode ser apagado da requisição porém isso faria com que o valor da temperatura retornasse medido em graus fahrenheit.

Acima é possível ver um exemplo deste campo preenchido com ambos os valores.

Por último basta inserir o nome da variável que receberá a informação da API. Neste tutorial utilizaremos o nome “temp” de temperatura.

Agora é necessário configurar a estrutura de decisão que criamos, o losango amarelo. Clique com o botão direito no losango e acesse suas propriedades. Em seguida vá até a aba de avançados e então preencha o primeiro campo de expressão com : “temp.list.0.main.temp<25″, e o segundo com:”temp.list.0.main.temp >=25”.

Isto fará com que o caminho da integração varie de acordo com a temperatura. Se a temperatura for igual ou superior a 25º então a integração irá redirecionar o fluxo para uma regra que diga que a temperatura está alta. Caso a temperatura esteja abaixo de 25º, a integração irá redirecionar o fluxo para uma regra que diga que a temperatura está baixa.

Para finalizarmos, iremos configurar as duas possíveis saídas destas integrações. Para isso iremos acessar a aba de “Estendido” do primeiro círculo vermelho, este será o nosso caminho caso a temperatura esteja abaixo de 25º.

O campo rule representa a regra que a integração irá chamar, e o campo “export_variables” irá trazer a varável da integração para a Sophie.

Neste caso iremos nomear a regra de “WeatherCold”, e o campo de “export_variables” será: “temp.list.0.main.temp”.

Em seguida iremos fazer a mesma coisa na segunda bola vermelha, com a diferença apenas no nome da regra que irá redirecionar, neste caso o nome da regra será “WeatherHot”.

Com esta etapa concluída necessitamos exportar o diagrama em um formato XPDL. Para isso vá até o menu superior e clique na aba “Exportar/Importar”, no menu de “Exportar” clique em XPDL e salve o arquivo neste formato.

Configurações do Gerenciador

Acesse a aba de “Serviços – Integrações”

Clique no botão “Adicionar Integração”,  e selecione o arquivo XPDL e dê um nome, neste artigo iremos utilizar o nome “RealWeather”, por fim clique em salvar e em seguida publique a integração.

Agora só precisamos criar as regras necessárias para o correto funcionamento da integração.

Criando as Regras

Vá até a aba de Regras e clique em “Novo”,

Este artigo não irá abordar todas as estruturas de criação de regras, sendo assim nós teremos a seguir uma elaboração bem superficial de como podemos interagir com esta integração.

A primeira regra a ser criada é a que receberá o nome da cidade, em casos de regras que serão utilizadas para interagir com integrações o ideal é que o nome comece com [NOME DA INTEGRAÇÃO] seguido pelo nome da regra.

No caso aqui apresentado, nós utilizaremos o nome [RealWeather]Temperatura.

Em seguida iremos acrescentar uma etiqueta, que é recomendado que seja o nome da regra.

Uma boa prática é categorizar a regra como pertencente a integração, no caso iremos criar uma categoria chamada “RealWeather”.

Precisamos inserir uma pergunta que irá chamar esta regra. e como este é um modelo de testes iremos utilizar apenas a palavra “temperatura”.

Para finalizarmos a criação desta primeira regra, precisamos inserir um comando para receber a resposta do usuário, que será a cidade que iremos buscar a temperatura pela integração.

Para isso precisamos clicar no botão “s:”

Na nova tela aberta iremos selecionar “s:input”. Na parte superior troque para a aba que está escrito o nome do comando.,

Nesta aba é necessário preencher alguns campos:

  • Nome: Nome da varável que será preenchida, neste caso será “city”. O nome que escolhemos ao configurar o círculo de start no Bizagi;
  • Ação: Apenas mantenha Sophie.Text;
  • Procurar padrão: Mantenha false;
  • Etiqueta: Esta será a mensagem enviada pela Sophie que pedirá para o usuário inserir a variável, neste caso utilizaremos: “Qual cidade gostaria de consultar?”;
  • Validador: Mantenha este campo vazio;
  • Usar último: Mantenha false;

Com esses campos preenchidos basta salvar a regra.

O próximo passo é criar uma regra filha que irá chamar a integração. Para isso, expanda a regra de criar, clique com o botão direito e selecione a opção “Adicionar”.

Esta regra será apenas para chamar a integração, logo o ideal é ser simplista na sua criação. Para o nome iremos utilizar “Input”, também é necessário selecioná-la com comando.

No campo de perguntas iremos adicionar apenas “[Default]” como entrada.

Na lista de respostas iremos novamente clicar no botão “s:”, iremos selecionar a opção de “s:integration”, e na aba ao lado iremos selecionar o nome dado a integração.

Clique em confirmar e em seguida adicionar. Você deverá ter algo próximo disto:

Basta salvar a regra e teremos a chamada integração finalizada.

Para finalizar criaremos duas regras que serão os redirecionamentos que a integração fará. Um para caso da temperatura estar acima de 25º e outro para caso a temperatura esteja abaixo de 25º.

No caso ambas as regras precisam possuir o mesmo nome que inserido no campo “rule”. No Bizagi, neste caso, os nomes são “WeatherCold” e “WeatherHot”, a etiqueta terá o mesmo no que a regra.

O campo comando também deverá ser sinalizado.

A pergunta inserida deverá ser idêntica ao nome da regra “WeatherHot” e “WeatherCold”.

A resposta deverá ser constituída pelo texto que a Sophie escreverá na mensagem de retorno, seguido de um comando getvar, que buscará a variável de retorno da integração, neste caso “temp”.

Sua mensagem de retorno deverá ser similar a isto:

Salve ambas as regras.

Para finalizarmos estes testes deveremos abrir o chat de conversa da Sophie e seguirmos o fluxo que criamos.

Was this post helpful?

Previous Post Next Post
vel, felis leo mi, commodo commodo mattis
× Como posso te ajudar?
Share via
Copy link
Powered by Social Snap