Logo de QANode

Nodo HTTP Request

El nodo HTTP Request permite realizar solicitudes HTTP a APIs REST, servicios SOAP o cualquier endpoint web. Admite métodos HTTP comunes, varios tipos de autenticación, credenciales guardadas, envío de archivos y respuestas en archivo.


Visión General

PropiedadValor
Tipohttp-request
CategoríaAPI
Color🟣 Morado (#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 como pares clave-valor
Parámetros de queryarrayPares clave-valor agregados a la URL
Tipo del cuerpostringNinguno, JSON, Texto bruto, x-www-form-urlencoded, multipart/form-data o Archivo binario
Tipo de respuestastringAuto, Texto, JSON o Archivo
CredencialstringCredencial guardada para autenticación

Modo Raw

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

Importar cURL

Importar cURL convierte un comando curl en la configuración visual de la solicitud. QANode intenta detectar:

  • método HTTP;
  • URL;
  • headers;
  • parámetros de query;
  • body JSON o texto;
  • x-www-form-urlencoded;
  • multipart/form-data;
  • archivo binario enviado con --data-binary @archivo.

Cuando el cURL referencia un archivo local, QANode muestra el nombre/camino importado y el usuario debe adjuntar o informar el fileRef correspondiente en el campo de archivo.


Autenticación

El nodo admite varios métodos de autenticación.

Usar Credenciales Guardadas

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

  1. Selecciona la credencial en Credencial
  2. La URL base y los headers de autenticación se aplican automáticamente
  3. En URL, informa solo el path, como /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

Cuerpo

Para métodos que aceptan body (POST, PUT, PATCH), elige Tipo del cuerpo.

Ninguno

No envía cuerpo. Es el valor por defecto para GET y DELETE.

JSON

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

El editor JSON resalta la sintaxis y acepta expresiones {{ }} dentro de los valores.

Texto bruto

Usa este modo para payloads textuales, XML, SOAP, scripts o cualquier contenido que no deba tratarse como JSON.

<login>
  <user>{{ variables.USUARIO }}</user>
</login>

x-www-form-urlencoded

Envía campos como application/x-www-form-urlencoded.

CampoValor
usernameadmin
password{{ variables.ADMIN_PASS }}

multipart/form-data

Envía campos de formulario en formato multipart, incluyendo texto y archivos.

Tipo de campoDescripción
TextoCampo textual común
ArchivoCampo que recibe un fileRef

Ejemplo:

Método: POST
URL: https://httpbin.org/post
Tipo del cuerpo: multipart/form-data
Campo texto:
  description = prueba de upload
Campo archivo:
  file = {{ steps["file-generate"].outputs.fileRef }}

Archivo binario

Envía el contenido de un único archivo como cuerpo de la solicitud. Úsalo cuando la API espera el archivo directamente en el body, no dentro de un formulario multipart.

Tipo del cuerpo: Archivo binario
Archivo: {{ steps["file-generate"].outputs.fileRef }}

QANode usa el MIME type del archivo cuando está disponible. Si es necesario, agrega manualmente un header Content-Type.


Respuestas en Archivo

El campo Tipo de respuesta controla cómo se trata el retorno de la API:

TipoComportamiento
AutoDetecta JSON/texto o archivo por contenido y headers
JSONIntenta interpretar la respuesta como JSON
TextoDevuelve el cuerpo como texto
ArchivoGuarda la respuesta como artefacto y expone fileRef

Usa Archivo cuando la API devuelve PDF, imagen, CSV, Excel, ZIP u otro contenido binario.


Outputs

OutputTipoDescripción
statusnumberCódigo de estado HTTP (200, 404, 500, etc.)
bodyanyCuerpo de la respuesta como texto o JSON, según la respuesta
fileReffileRefArchivo devuelto por la API, cuando la respuesta se trata como archivo

Accediendo a los Outputs

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

// Cuerpo JSON o texto
{{ steps["http-request"].outputs.body }}  →  { "id": 1, "name": "Juan" }

// Array en el JSON
{{ steps["http-request"].outputs.body.items[0].title }}  →  "Primer item"

// Archivo devuelto por la API
{{ steps["http-request"].outputs.fileRef }}

Campos antiguos como json, headers, text, rawBody y statusCode pueden seguir accesibles en expresiones manuales durante la ventana de compatibilidad, pero el panel de variables sugiere solo la superficie nueva: status, body o fileRef.


Ejemplos Prácticos

GET — Obtener usuario

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

POST — Crear recurso

Método: POST
URL: https://api.example.com/users
Tipo del cuerpo: JSON
JSON: {
  "name": "Maria",
  "email": "maria@example.com"
}

POST — Upload multipart

Método: POST
URL: https://httpbin.org/post
Tipo del cuerpo: multipart/form-data
Campo texto: description = prueba de upload
Campo archivo: file = {{ steps["file-generate"].outputs.fileRef }}

GET — Descargar archivo

Método: GET
URL: https://httpbin.org/image/png
Tipo de respuesta: Archivo

Manejo de Errores

EstadoSignificadoAcción sugerida
200-299ÉxitoContinuar normalmente
400Solicitud inválidaRevisar body/params
401No autorizadoRevisar token/credencial
403ProhibidoRevisar permisos
404No encontradoRevisar URL
500Error del servidorRevisar API

Usa un nodo If después de HTTP Request para tratar diferentes códigos de estado:

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

Consejos

  • Usa credenciales guardadas en lugar de colocar tokens directamente en los campos.
  • Verifica status antes de usar body.
  • Usa variables para URLs base: {{ variables.API_URL }}/endpoint.
  • Usa multipart/form-data cuando la API espera upload de formulario.
  • Usa Tipo de respuesta = Archivo para respuestas binarias.