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.
Ciclo de Funcionamento
Section titled “Ciclo de Funcionamento”-
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).
-
Execução Reativa
Realiza a requisição HTTP para o endpoint externo em uma thread virtual dedicada.
-
Tratamento de Resposta
Converte o retorno obtido (
RespostaClienteHttp) em um documento estruturado contendo status, corpo, cabeçalhos e duração da chamada em milissegundos. -
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 de Configuração JSON da Etapa
Section titled “Exemplo de Configuração JSON da Etapa”Exemplo da estrutura das chaves bdot:* geradas pelo Editor Visual para este runner:
{ "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}