Saltar al contenido principal

Nodo http request

El nodo http request está diseñado para realizar solicitudes HTTP a servicios web externos o API. Soporta varios métodos HTTP, formas de transmisión de datos, autenticación y gestión flexible de solicitudes y respuestas.


Configuración del nodo http request

IMG2

1. Nombre

Campo para especificar el nombre del nodo.
El nombre se muestra en el área de trabajo y ayuda a identificar fácilmente el nodo.
Si se deja vacío, el nodo se llamará http request.

Ejemplo:

  • Nombre del nodo: Obtener Datos del Clima

2. Método

Método HTTP que se utilizará para la solicitud. La elección del método depende del tipo de operación que se necesite realizar.

Métodos disponibles:

  • GET: Obtener datos.
  • POST: Enviar datos.
  • PUT: Actualizar datos.
  • DELETE: Eliminar datos.
  • HEAD: Obtener encabezados de respuesta.

Ejemplo:

  • Método: POST

3. Enlace

Campo para especificar una URL estática a la que se enviará la solicitud.
Si la dirección necesita ser establecida dinámicamente, se puede pasar en msg.url.

Ejemplo:

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

4. Datos

Define cómo se agregarán los datos de entrada a la solicitud HTTP. Las siguientes opciones están disponibles:

  1. Ignorar (por defecto):
    Los datos de entrada no se utilizarán en la solicitud. El campo msg.payload, si existe, será ignorado.

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


  1. Agregar a parámetros de consulta:
    Los datos de msg.payload se convertirán en parámetros de la cadena de consulta (Query Parameters) y se agregarán a la URL.

    Ejemplo:
    Si msg.payload contiene:

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

    Si el Enlace se especifica como http://example.com/api, la solicitud final será:
    GET http://example.com/api?key1=value1&key2=value2.


  1. Enviar como cuerpo de la solicitud:
    Los datos de msg.payload se enviarán en el cuerpo de la solicitud. Esta opción es adecuada para los métodos POST y PUT, donde los datos a menudo se envían en el cuerpo.

    Ejemplo:
    Si msg.payload contiene:

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

    Si el método de la solicitud es POST, los datos se enviarán en el cuerpo de la solicitud con el contenido correspondiente.

5. Devolver

Define en qué formato el nodo procesará la respuesta del servidor.

Opciones:

  • Cadena: La respuesta se convierte en una cadena (por defecto).
  • Objeto JSON: Si la respuesta del servidor está en formato JSON, se convierte automáticamente en un objeto JavaScript.
  • Buffer Binario: La respuesta se devuelve como un buffer binario (útil para datos binarios, como imágenes o archivos).

Ejemplo:

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

6. Usar Autenticación

La casilla activa la autenticación incorporada (por defecto desactivada). Cuando está activada, aparece un campo Tipo con el método de autenticación (por defecto basic):

basic

  • Nombre de usuario: Nombre de usuario.
  • Contraseña: Contraseña.

bearer

  • Contraseña: Token de acceso.

digest

  • Nombre de usuario: Nombre de usuario.
  • Contraseña: Contraseña.

Datos de entrada

El nodo http request acepta un objeto de mensaje msg con los parámetros:

  1. msg.url: URL para la solicitud (si no se especifica en la configuración del nodo).
  2. msg.method: Método HTTP (si no se especifica en la configuración del nodo).
  3. msg.payload: Cuerpo de la solicitud (se utiliza para los métodos POST, 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 realizó la solicitud.
  5. msg.error: Descripción del error (si la solicitud falló).

Ejemplos de uso

Ejemplo 1: Realización de una solicitud GET

Configuración del nodo:

  • Método: GET
  • Enlace: https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London

Flujo:

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

Resultado: El nodo devolverá un JSON con el clima actual.


Ejemplo 2: Envío de datos a través de POST

Configuración del nodo:

  • Método: POST
  • Enlace: https://api.example.com/devices
  • Datos: Enviar como cuerpo de la solicitud

Flujo:

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

Código en el nodo function:

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

Resultado: Los datos se enviarán y el nodo devolverá la respuesta del servidor.


Ejemplo 3: URL dinámica y autenticación

Configuración del nodo:

  • Enlace: (dejar vacío)

Flujo:

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

Código en el nodo function:

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

Resultado: El nodo realizará la solicitud a la URL especificada con el token de autenticación.