config: configuração da chamada https que será feita. Deve conter a opção da biblioteca indicada no atributo flavor(biblioteca axios do NodeJS). Abaixo segue exemplo:
flavor: biblioteca que será usada para realizar o request, neste caso, axios
before_action_messages: mensagens para serem enviadas ao usuário antes da execução da ação
result_variable: variável de contexto que receberá a resposta da chamada HTTP
{"statusCode": 200,"headers": "<headers do retorno da requisição>","body": "<body do retorno da requisição>" }
[ {"name":"http_request","parameters": {"config": {"url":"https://viacep.com.br/ws/<?$cep?>/json", },"flavor":"axios","before_action_messages": ["Estamos solicitando a consulta","Aguarde por favor" ] },"result_variable":"api_consulta" }]
No exemplo acima, não são necessários os parâmetros body e headers. É realizada uma consulta ao webservice ViaCEP. Foi passada uma variável de contexto $cep na URL e o retorno é o JSON abaixo:
Supondo que deseja manipular essas informações, bastaria acessá-las percorrendo a variável de contexto que, no parâmetro result_variable, armazenou o JSON de resposta. Por exemplo:
Uma chamada que possui um body e headers para autenticação de acesso.
[ {"name":"http_request","parameters": {"config": {"url":"https://api.altu.com.br/teste/consultapessoa","data": {"codigo":"1","nome_pessoa":"<? $nome_pessoa ?>" },"method":"POST","headers": {"Authorization":"AuZk16BNCHDvzcObTaUiVUnh6F0KJtuD" } },"flavor":"axios","before_action_messages": ["Estamos solicitando a consulta","Aguarde por favor" ] },"result_variable":"api_consulta" }]
HTTP_Request Async
O Http Request async é uma opção para as ações de requisição assíncrona, ou seja, uma comunicação que não ocorre simultaneamente evitando falhas ou pausa no sistema. Por meio dele é possível utilizar duas flags: async e waitTime, que podem ser adicionadas dentro dos parâmetros do código.
A flag waitTime só pode ser utilizada juntamente com async e permite definir um tempo para realizar a chamada, ou seja, caso classifiquem "waitTime": 60 teremos um tempo de espera de 1 minuto antes que a chamada HTTP seja realizada.
No caso do async são aceitos os valores de true e false, caso não seja especificado será classificado como false por padrão e seguirá o mesmo padrão do http_request. Já no waitTime devem ser utilizados valores em segundos entre 0 e 900 (equivalente a 15 minutos).
config: configuração da chamada https que será feita. Deve conter a opção da biblioteca indicada no atributo flavor(biblioteca axios do NodeJS). Abaixo segue exemplo:
flavor: biblioteca que será usada para realizar o request, neste caso, axios
waitTime: valores de 0 a 900 (em segundos), quando "async": true.
result_variable: variável de contexto que receberá a resposta da chamada HTTP
Responses
Quando async for true o fluxo continua e o result_variable é preenchido com o status Pending, indicando que a requisição está em andamento, ao final da chamada da API é enviada uma nova mensagem atualizando o resultado como Done, ou seja, concluída com sucesso.
Após a conclusão da chamada HTTP um input.text é enviado ao assistente com a mensagem "ALTU_ASYNC_HTTP_RESPONSE", possibilitando o envio da resposta da API.
Filtro de resposta
Utilize filtros para obter respostas de APIs no Builder utilizando o JSONPATH-PLUS, basta adicionar o campo responseFilter com a expressão do que você gostaria de filtrar, como no exemplo:
config: configuração da chamada https que será feita. Deve conter a opção da biblioteca indicada no atributo flavor(biblioteca axios do NodeJS). Abaixo segue exemplo:
"body": [
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
]
"body": [
"Evelyn Waugh",
"Sword of Honour",
12.99
]
"body": [
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
]