Saltar al contenido principal

Nodo http request

El nodo http request envía solicitudes HTTP a servicios web externos o API. Admite varios métodos HTTP, distintas formas de enviar los datos y autenticación, y permite controlar con flexibilidad las solicitudes y las respuestas.


Configuración del nodo http request​

Ventana "Node Information" del nodo http request "paypal auth": método "POST", URL del token de PayPal sandbox, "Object JSON", "Use Authentication" activado con el tipo "basic"

1. Name​

Nombre del nodo.
Se muestra en el área de trabajo y ayuda a identificar el nodo.
Si lo deja vacío, el nodo se llamará http request.

Ejemplo:

  • Nombre del nodo: Get Weather Data

2. Method​

Método HTTP de la solicitud. Elíjalo según el tipo de operación que necesite realizar.

Métodos disponibles:

  • GET: obtener datos.
  • POST: enviar datos.
  • PUT: actualizar datos.
  • DELETE: eliminar datos.
  • HEAD: obtener los encabezados de la respuesta.

Ejemplo:

  • Method: POST

URL estática a la que se envía la solicitud.
Si la dirección debe definirse de forma dinámica, puede pasarla en msg.url.

Ejemplo:

  • Link: https://api.example.com/data

4. Data​

Define cómo se añaden los datos de entrada a la solicitud HTTP. Las opciones son:

  1. Ignore (por defecto):
    Los datos de entrada no se usan en la solicitud. El campo msg.payload, si existe, se ignora.

    Ejemplo:
    Si msg.payload contiene un objeto JSON, no se incluye en la solicitud.


  1. Add to query parameters:
    Los datos de msg.payload se convierten en parámetros de la cadena de consulta (Query Parameters) y se añaden a la URL.

    Ejemplo:
    Si msg.payload contiene:

    {
    "key1": "value1",
    "key2": "value2"
    }

    y en Link se indica http://example.com/api, la solicitud final será:
    GET http://example.com/api?key1=value1&key2=value2.


  1. Send as request body:
    Los datos de msg.payload se envían en el cuerpo de la solicitud. Esta opción es adecuada para los métodos POST y PUT, que suelen enviar los datos en el cuerpo.

    Ejemplo:
    Si msg.payload contiene:

    {
    "name": "John Doe",
    "email": "john.doe@example.com"
    }

    y el método de la solicitud es POST, estos datos se envían en el cuerpo de la solicitud.

5. Return​

Define el formato en que el nodo procesa la respuesta del servidor.

Opciones:

  • String: la respuesta se convierte en una cadena (por defecto).
  • Object JSON: si la respuesta del servidor está en formato JSON, se convierte automáticamente en un objeto JavaScript.
  • Binary Buffer: la respuesta se devuelve como un búfer binario (útil para datos binarios, como imágenes o archivos).

Ejemplo:

  • Si elige Object JSON, la respuesta:
    {"status": "ok", "value": 42}
    se convierte en:
    msg.payload = { status: "ok", value: 42 };

6. Use Authentication​

Esta casilla activa la autenticación integrada (por defecto está desactivada). Al activarla, aparece en el formulario el campo Type con el método de autenticación (por defecto, basic):

basic​

  • Username: nombre de usuario.
  • Password: contraseña.

bearer​

  • Password: token de acceso.

digest​

  • Username: nombre de usuario.
  • Password: contraseña.

Datos de entrada​

El nodo http request recibe un objeto de mensaje msg con estos parámetros:

  1. msg.url: URL de la solicitud (si no se indica en la configuración del nodo).
  2. msg.method: método HTTP (si no se indica en la configuración del nodo).
  3. msg.payload: cuerpo de la solicitud (se usa con los métodos POST y PUT).
  4. msg.headers: encabezados de la solicitud HTTP (objeto).

Datos de salida​

El nodo devuelve un objeto msg con información sobre la solicitud realizada:

  1. msg.payload: datos de la respuesta del servidor.
  2. msg.statusCode: código de estado HTTP de la respuesta (por ejemplo, 200 o 404).
  3. msg.headers: encabezados de la respuesta.
  4. msg.responseUrl: URL a la que se envió la solicitud.
  5. msg.error: descripción del error (si la solicitud falló).

Ejemplos de uso​

Ejemplo 1: solicitud GET​

Configuración del nodo:

  • Method: GET
  • Link: https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London

Flujo:

[inject] ---> [http request] ---> [debug]

Resultado: el nodo devuelve un JSON con el tiempo actual.


Ejemplo 2: envío de datos con POST​

Configuración del nodo:

  • Method: POST
  • Link: https://api.example.com/devices
  • Data: Send as request body

Flujo:

[function] ---> [http request] ---> [debug]

Código del nodo function:

msg.payload = {
deviceId: "sensor123",
status: "active"
};
msg.headers = { "Content-Type": "application/json" };
return msg;

Resultado: los datos se envían y el nodo devuelve la respuesta del servidor.


Ejemplo 3: URL dinámica y autenticación​

Configuración del nodo:

  • Link: (dejar vacío)

Flujo:

[function] ---> [http request] ---> [debug]

Código del nodo function:

msg.url = "https://api.example.com/user/123";
msg.headers = { Authorization: "Bearer YOUR_TOKEN" };
return msg;

Resultado: el nodo envía la solicitud a la URL indicada con el token de autenticación.