Saltar para o conteúdo principal

http.request

Chamar API (HTTP)

Chama uma API por HTTP — guarda a resposta, opcionalmente vira dados do fluxo ou espera por callback.

  • Kind: step
  • Key: http.request
  • Categoria: action
  • Envelope: mapa (um objeto JSON em config)

Campos

ChaveTipoObrigatórioOmissãoDescriçãoReferência
urlstringnão""O alvo do pedido (ou o caminho, com uma ligação). Aceita tokens {{vars.x}}/{{record.y}} e a {{callbackUrl}}.expressões {{record.coluna}}
methodstringnão"GET"Verbo HTTP. Qualquer token válido serve (verbos próprios incluídos); só a ausência total cai em GET.-
headersmapnão{}Cabeçalhos do pedido, nome → valor.-
invalidHeadersstringnão""O texto cru dos cabeçalhos quando não é um JSON de objeto. Presente = a config está inválida e o passo falha antes do pedido. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
bodystringnão-Corpo a enviar, com tokens. Ausente = sem corpo (um corpo vazio com recordsAsBody envia os registos do fluxo).expressões {{record.coluna}}
recordsAsBodybooleannãotrueCorpo vazio envia os registos do fluxo como JSON array. Ligado por omissão.-
responseVarstringnão"http"Nome da variável onde a resposta ({status, ok, body}) fica sempre disponível a jusante.-
continueOnErrorbooleannãofalseUm status fora de 2xx deixa de falhar o passo: a resposta entra com ok: false e o fluxo segue.-
useResponseAsRecordsbooleannãofalseA resposta SUBSTITUI os registos do fluxo. Desligado = o fluxo segue com os registos que já tinha.-
recordsPathstringnão""Caminho pontuado dentro da resposta até à lista a usar como registos (ex.: data.items). Vazio = a raiz.-
inferredColumnslist de stringnão[]As colunas que o botão "Testar & inferir" detetou na resposta: metadados de autoria, publicados quando a resposta vira registos.-
awaitAckbooleannãofalseModo callback: faz o pedido, embebe a {{callbackUrl}} e suspende até o serviço chamar de volta.-
callbackVarstringnão"callback"Nome da variável onde o corpo do callback aterra ao retomar. Só sai no JSON em modo callback.-
timeoutMinutesintegernão-Prazo máximo de espera do callback, em minutos. Ausente = espera indefinida.-
connectionNamestringnão-Nome da ligação http a usar (baseUrl, cabeçalhos e autenticação do cofre). Vazio = pedido cru.ligação (nome)
endpointRefstringnão""Nome de um endpoint da ligação, que governa verbo, caminho, cabeçalhos e corpo. Vazio = sem endpoint nomeado.-
connectionVariablesjsonnão{}Valores por-step para as variáveis declaradas na ligação. Podem transportar segredos: nem o varredor lhes toca. Segredo. O exportador substitui este valor por vazio e nomeia o caminho em redacted[]: nunca sai num pacote de template. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
shapingmapnão-Resumir na fonte: filtra, agrupa e agrega a resposta ANTES de ela virar registos. Ausente = sem resumo.-

shaping

ChaveTipoObrigatórioOmissãoDescriçãoReferência
filtermapnão-Filtro prévio, aplicado às linhas da resposta antes de agrupar.-
groupBylist de stringnão[]Campos por que se agrupa. Vazio = um único grupo global (o total).-
metricslist de mapnão[]O que calcular por grupo. Sem métricas não há resumo.-

shaping.filter

ChaveTipoObrigatórioOmissãoDescriçãoReferência
combinatorenumerationnão"and"Como se combinam as regras do grupo: and exige todas, or basta uma.-
ruleslist de mapnão-As regras do grupo.-
groupslist de mapnão-Subgrupos aninhados, com a mesma forma.-

shaping.filter.rules[]

Cada elemento de shaping.filter.rules é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
idstringnão-Identificador da regra, gerado pela app. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
columnNamestringnão-Campo da resposta, POR NOME: o passo não nomeia feature nenhuma, logo não é referência a coluna de tabela.-
operatorstringnão-Operador da comparação.-
valuestringnão-Valor da comparação: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
secondValuestringnão-Segundo valor, usado pelos operadores de intervalo. Só aparece no JSON quando não é nulo. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-

shaping.filter.groups[]

Cada elemento de shaping.filter.groups é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
combinatorenumerationnão"and"Como se combinam as regras do subgrupo.-
ruleslist de mapnão-As regras do grupo.-
groupslistnão-Subgrupos de terceiro nível: varrem-se às cegas (uma FieldDecl const não se pode referir a si própria).-

shaping.filter.groups[].rules[]

Cada elemento de shaping.filter.groups[].rules é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
idstringnão-Identificador da regra, gerado pela app. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
columnNamestringnão-Campo da resposta, POR NOME: o passo não nomeia feature nenhuma, logo não é referência a coluna de tabela.-
operatorstringnão-Operador da comparação.-
valuestringnão-Valor da comparação: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
secondValuestringnão-Segundo valor, usado pelos operadores de intervalo. Só aparece no JSON quando não é nulo. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-

shaping.metrics[]

Cada elemento de shaping.metrics é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
openumerationnão-A operação a aplicar. Só a contagem dispensa o campo.-
fieldstringnão""Campo de origem, pelo nome que tem no envelope da resposta. Vazio só é válido na contagem.-
asstringnão""Nome da coluna de saída. Vazio = derivado do campo (ou da operação, na contagem).-

Exemplo JSON

{
"url": "",
"method": "GET",
"headers": {},
"invalidHeaders": "",
"recordsAsBody": true,
"responseVar": "http",
"continueOnError": false,
"useResponseAsRecords": false,
"recordsPath": "",
"inferredColumns": [],
"awaitAck": false,
"callbackVar": "callback",
"endpointRef": "",
"connectionVariables": {}
}

Gerado de definitions.json versão 17f3e0bc59d9. Esta página nasce no build: não se edita à mão.