QANode Logo

Nó HTTP Request

O nó HTTP Request permite fazer requisições HTTP para APIs REST, SOAP ou qualquer endpoint web. Suporta todos os métodos HTTP comuns, múltiplos tipos de autenticação e integração com credenciais salvas.


Visão Geral

PropriedadeValor
Tipohttp-request
CategoriaAPI
Cor🟣 Roxo (#a855f7)
Entradain
Saídaout

Configuração

Modo Builder

O modo builder oferece uma interface visual para construir a requisição:

CampoTipoDescrição
MétodostringGET, POST, PUT, PATCH, DELETE
URLstringURL do endpoint (suporta {{ }})
HeadersobjectCabeçalhos HTTP (chave-valor)
BodyanyCorpo da requisição (JSON ou texto)
CredencialstringCredencial salva para autenticação

Modo Raw

O modo raw permite editar a requisição como JSON puro, oferecendo controle total.


Autenticação

O nó suporta múltiplos métodos de autenticação:

Usando Credenciais Salvas

A forma mais segura e recomendada. Selecione uma credencial do tipo HTTP/API que contenha a URL base e o token:

  1. No campo Credencial, selecione a credencial desejada
  2. A URL base e os headers de autenticação serão aplicados automaticamente
  3. No campo URL, informe apenas o path: /api/users

Autenticação Manual

TipoCamposResultado
Bearer TokenTokenHeader Authorization: Bearer {token}
Basic AuthUsuário + SenhaHeader Authorization: Basic {base64}
API KeyHeader Name + TokenHeader customizado com o token

Métodos HTTP

MétodoUso Típico
GETBuscar dados (listar, obter detalhes)
POSTCriar recursos, enviar dados
PUTAtualizar recurso completo
PATCHAtualizar parcialmente um recurso
DELETERemover um recurso

Headers

Adicione headers customizados como pares chave-valor:

HeaderExemplo
Content-Typeapplication/json
Acceptapplication/json
X-Custom-Headermeu-valor
AuthorizationBearer {{ variables.TOKEN }}

Headers suportam expressões {{ }} para valores dinâmicos.


Body (Corpo da Requisição)

Para métodos que aceitam body (POST, PUT, PATCH), você pode enviar:

JSON

{
  "name": "{{ variables.USER_NAME }}",
  "email": "{{ steps["web-flow"].outputs.extracts.email }}",
  "active": true
}

Form Data

{
  "username": "admin",
  "password": "{{ variables.ADMIN_PASS }}"
}

O body suporta expressões {{ }} em qualquer valor.


Outputs

OutputTipoDescrição
statusnumberCódigo de status HTTP (200, 404, 500, etc.)
bodystringCorpo da resposta como texto
jsonanyCorpo da resposta parseado como JSON

Acessando os Outputs

// Status da resposta
{{ steps["http-request"].outputs.status }}  →  200

// Corpo JSON
{{ steps["http-request"].outputs.json }}  →  { "id": 1, "name": "João" }

// Propriedade específica do JSON
{{ steps["http-request"].outputs.json.name }}  →  "João"

// Array no JSON
{{ steps["http-request"].outputs.json.items[0].title }}  →  "Primeiro Item"

// Corpo como texto
{{ steps["http-request"].outputs.body }}  →  '{"id": 1, "name": "João"}'

Exemplos Práticos

GET — Buscar usuário

Método: GET
URL: https://api.exemplo.com/users/1
Headers: { "Accept": "application/json" }

POST — Criar recurso

Método: POST
URL: https://api.exemplo.com/users
Headers: { "Content-Type": "application/json" }
Body: {
  "name": "Maria",
  "email": "maria@exemplo.com"
}

PUT com autenticação Bearer

Método: PUT
URL: https://api.exemplo.com/users/1
Auth: Bearer Token → {{ steps.login.outputs.json.token }}
Body: {
  "name": "Maria Silva",
  "role": "admin"
}

Encadeando requisições

[HTTP Request: POST /login]
    │ outputs.json.token = "abc123"
    ▼
[HTTP Request: GET /api/profile]
    │ Header: Authorization = Bearer {{ steps.login.outputs.json.token }}
    ▼
[If: {{ steps.profile.outputs.status }} === 200]
    │ true → [Log: "Perfil: {{ steps.profile.outputs.json.name }}"]

Tratamento de Erros

StatusSignificadoAção Sugerida
200-299SucessoProsseguir normalmente
400Requisição inválidaVerificar body/params
401Não autorizadoVerificar token/credencial
403ProibidoVerificar permissões
404Não encontradoVerificar URL
500Erro do servidorVerificar API

Use o nó If após o HTTP Request para tratar diferentes status:

[HTTP Request] → [If: status === 200]
                    │ true → [Continuar...]
                    │ false → [Log: "Erro: {{ steps.api.outputs.status }}"]

Dicas

  • Use credenciais salvas em vez de colocar tokens diretamente nos campos — é mais seguro e facilita a manutenção
  • Verifique o status da resposta antes de usar o JSON — uma resposta de erro pode não ter o formato esperado
  • Use variáveis para URLs base: {{ variables.API_URL }}/endpoint permite trocar ambientes facilmente
  • O output json retorna null se a resposta não for JSON válido — nesse caso, use body