HTTP Request
Realiza uma chamada HTTP e retorna o resultado em uma variável de contexto.
Atenção: A biblioteca request está deprecated, portanto opte por utilizar flavor como axios
Estrutura
[
{
"name": "http_request",
"parameters": {
"config": {
"url": "https://api.altu.com.br/teste",
"data": {
"param1": "value1",
"param2": "value2",
"param3": "<? $var_contexto ?>",
},
"method": "POST",
"headers": {
"Authorization": "meu_token"
}
},
"flavor": "axios",
"before_action_messages": [
"Mensagem 1",
"Mensagem 2"
]
},
"result_variable": "api_response"
}
]name: http_request
parameters:
config: configuração da chamada https que será feita. Deve conter a opção da biblioteca indicada no atributo flavor(biblioteca
axiosdo NodeJS). Abaixo segue exemplo:
url: url da chamada
HTTPdata: parâmetros da chamada
HTTPmethod: método da chamada
HTTPheaders: cabeçalho da chamada
HTTPAuthorization: token de autenticação da chamada
flavor: biblioteca que será usada para realizar o request, neste caso,
axiosbefore_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
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.
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).
Estrutura
Atributos
name: http_request
parameters:
async: default false. true or false
config: configuração da chamada https que será feita. Deve conter a opção da biblioteca indicada no atributo flavor(biblioteca
axiosdo NodeJS). Abaixo segue exemplo:
url: url da chamada
HTTPdata: parâmetros da chamada
HTTPmethod: método da chamada
HTTPflavor: biblioteca que será usada para realizar o request, neste caso,
axioswaitTime: 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.
Informa que a requisição está em andamento

Indica que a chamada foi concluída com sucesso

Indica que algo de errado aconteceu no processo

Exemplos
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:
Estrutura
Atributos
name: http_request
parameters:
config: configuração da chamada https que será feita. Deve conter a opção da biblioteca indicada no atributo flavor(biblioteca
axiosdo NodeJS). Abaixo segue exemplo:
url: url da chamada
HTTPflavor: biblioteca que será usada para realizar o request, neste caso,
axiosresponseFilter: expressão no formato JSONpath para filtrar a resposta da API
before_action_messages(opcional): Mensagem enviada para o usuário antes da execução a ação.
result_variable: variável de contexto que receberá a resposta da chamada
HTTP
Funcionalidades
^Busca por elemento igual da expressão~Seleciona o nome das propriedades (as array)Seletores possíveis
@null(),@boolean(),@number(),@string(),@array(),@object(),@integer( )Seletores para facilitar acesso a estruturas
@path/@parent/@property/@parentProperty/@root
Escaping
`: para utilizar caracteres reservados. ex:`$Em casos mais complexos também é possível utilizar:
@['...']/?@['...']
Tabela de sintaxe
Caracteres
Descrição
$
Raiz do objeto ou elemento
@
Objeto ou elemento atual
.
Operador para filhos do objeto
..
Operador descendente recursivo
*
Caractere coringa correspondendo a todos os objetos ou elementos, independentemente de seus nomes
[]
Operador subscrito
[, ]
Operador de união para nomes alternativos ou índices de matriz como um conjunto
[start:end:step]
Operador para dividir o array
?()
Aplica uma lógica de comparação (script)
Tabela de expressões
Caracteres
Descrição
$..
Retorna todos os dados de forma recursiva
$..*
Retorna todos os valores do primeiro nível da resposta da API
$..*~
Retorna todos os nomes dos campos do primeiro nível da resposta da API
$..nome
Retorna os valores encontrados para a variável nome dentro da resposta da API
$..[nome, cidade]
Retorna os valores encontrados para as variáveis nome e cidade dentro da resposta da API
$..nome[1]
Retorna o segundo nome dentro da resposta da API
$..nome[-1:]
Retorna o ultimo nome da resposta da API
$..book.*[?(@property !== "category")]
Retorna todos os campos dos livros, tirando o campo 'category'
Exemplos:
1 - Assumindo uma resposta de API sendo:
2 - Respostas com composição mais complexa
Last updated
Was this helpful?