Logo de QANode

Nodo HTTP Request

El nodo HTTP Request permite realizar solicitudes HTTP a APIs REST, servicios SOAP o cualquier endpoint web. Admite todos los métodos HTTP comunes, múltiples tipos de autenticación e integración con credenciales guardadas.


Descripción General

PropiedadValor
Tipohttp-request
CategoríaAPI
ColorMorado (#a855f7)
Entradain
Salidaout

Configuración

Modo Builder

El modo builder ofrece una interfaz visual para construir la solicitud:

CampoTipoDescripción
MétodostringGET, POST, PUT, PATCH, DELETE
URLstringURL del endpoint (admite {{ }})
HeadersobjectEncabezados HTTP (clave-valor)
BodyanyCuerpo de la solicitud (JSON o texto plano)
CredencialstringCredencial guardada para autenticación

Modo Raw

El modo raw permite editar la solicitud como JSON puro, proporcionando control total.


Autenticación

El nodo admite múltiples métodos de autenticación:

Usar Credenciales Guardadas

La forma más segura y recomendada. Seleccione una credencial de tipo HTTP/API que contenga la URL base y el token:

  1. En el campo Credencial, seleccione la credencial deseada
  2. La URL base y los encabezados de autenticación se aplicarán automáticamente
  3. En el campo URL, ingrese solo el path: /api/users

Autenticación Manual

TipoCamposResultado
Bearer TokenTokenHeader Authorization: Bearer {token}
Basic AuthUsuario + ContraseñaHeader Authorization: Basic {base64}
API KeyNombre del Header + TokenHeader personalizado con el token

Métodos HTTP

MétodoUso Típico
GETObtener datos (listar, ver detalles)
POSTCrear recursos, enviar datos
PUTReemplazar un recurso completo
PATCHActualizar parcialmente un recurso
DELETEEliminar un recurso

Headers

Agregue encabezados personalizados como pares clave-valor:

HeaderEjemplo
Content-Typeapplication/json
Acceptapplication/json
X-Custom-Headermi-valor
AuthorizationBearer {{ variables.TOKEN }}

Los headers admiten expresiones {{ }} para valores dinámicos.


Body (Cuerpo de la Solicitud)

Para métodos que aceptan body (POST, PUT, PATCH), puede enviar:

JSON

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

Form Data

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

El body admite expresiones {{ }} en cualquier valor.


Outputs

OutputTipoDescripción
statusnumberCódigo de estado HTTP (200, 404, 500, etc.)
bodystringCuerpo de la respuesta como texto plano
jsonanyCuerpo de la respuesta analizado como JSON

Acceder a los Outputs

// Estado de la respuesta
{{ steps["http-request"].outputs.status }}  →  200

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

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

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

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

Ejemplos Prácticos

GET — Obtener un usuario

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

POST — Crear un recurso

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

PUT con autenticación 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"
}

Encadenando solicitudes

[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 }}"]

Manejo de Errores

EstadoSignificadoAcción Sugerida
200-299ÉxitoContinuar normalmente
400Solicitud inválidaVerificar body/params
401No autorizadoVerificar token/credencial
403ProhibidoVerificar permisos
404No encontradoVerificar URL
500Error del servidorVerificar API

Use el nodo If después del HTTP Request para manejar diferentes códigos de estado:

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

Consejos

  • Use credenciales guardadas en lugar de colocar tokens directamente en los campos — es más seguro y facilita el mantenimiento
  • Verifique el estado antes de usar el JSON — una respuesta de error puede no tener el formato esperado
  • Use variables para las URLs base: {{ variables.API_URL }}/endpoint permite cambiar de entorno fácilmente
  • El output json devuelve null si la respuesta no es JSON válido — en ese caso, use body