Skip to content

Cliente HTTP

O runner de Cliente HTTP (HTTP_CLIENT) é o componente core especializado na realização de chamadas HTTP/REST síncronas para APIs, microsserviços e sistemas externos durante a execução do fluxo.

Ele permite construir requisições dinâmicas enviando URLs, métodos, cabeçalhos e corpos parametrizados através do motor de substituição de variáveis. O resultado da chamada (corpo da resposta, código de status HTTP, cabeçalhos obtidos e tempo de execução) é automaticamente registrado no histórico da sessão, ficando disponível para leitura nas etapas seguintes.


  1. Montagem da Requisição

    O runner lê a definição da etapa, aplica a interpolação de variáveis e constrói o contexto do cliente HTTP (URL, método, cabeçalhos, corpo e timeout).

  2. Execução Reativa

    Realiza a requisição HTTP para o endpoint externo em uma thread virtual dedicada.

  3. Tratamento de Resposta

    Converte o retorno obtido (RespostaClienteHttp) em um documento estruturado contendo status, corpo, cabeçalhos e duração da chamada em milissegundos.

  4. Registro e Rastreabilidade

    Anexa os dados do retorno ao histórico da sessão. Em caso de falha de conexão ou erro de timeout, captura a exceção, marca a interrupção e repassa o container de erro para o orquestrador.


Parâmetros e Formulário de Configuração

Section titled “Parâmetros e Formulário de Configuração”

Os parâmetros deste runner são configurados no formulário do Editor Visual e serializados no mapa de definição da etapa:

Campo no Formulário / Atributo JSON Tipo Obrigatório Descrição
bdot:url String Sim URL base do endpoint externo a ser consumido. Aceita interpolação de variáveis (ex: ${variaveis.URL_API}/v1/clientes).
bdot:metodo String Sim Verbo HTTP a ser utilizado na requisição (GET, POST, PUT, DELETE, PATCH).
bdot:configCabecalho Boolean Não Habilita a adição de cabeçalhos customizados na requisição.
bdot:cabecalho String (JSON) Condicional Documento JSON com pares chave/valor dos cabeçalhos a serem enviados (ex: {"Authorization": "Bearer ${entrada.auth.token}"}). Obrigatório se bdot:configCabecalho = true.
bdot:configCorpo Boolean Não Habilita o envio de payload no corpo da requisição.
bdot:corpo String Condicional Conteúdo do corpo da requisição em formato JSON ou texto. Suporta interpolação de parâmetros. Obrigatório se bdot:configCorpo = true.
bdot:timeout Integer Não Tempo máximo de espera pela resposta em milissegundos.

Exemplo da estrutura das chaves bdot:* geradas pelo Editor Visual para este runner:

definicao.json
{
"bdot:url": "${variaveis.URL_SERVICO_PARCEIRO}/v1/pagamentos",
"bdot:metodo": "POST",
"bdot:configCabecalho": true,
"bdot:cabecalho": "{\"Content-Type\": \"application/json\", \"Authorization\": \"Bearer ${entrada.auth.token}\"}",
"bdot:configCorpo": true,
"bdot:corpo": "{\"valor\": ${entrada.body.valor}, \"clienteId\": \"${dados.cliente.id}\"}",
"bdot:timeout": 5000
}