Saltar al contenido principal

Nodo http request

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


Configuraciones para el nodo http request

IMG2

1. Nombre

Un campo para especificar el nombre del nodo.
El nombre se muestra en el espacio 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

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

Métodos disponibles:

  • GET: Recuperar datos.
  • POST: Enviar datos.
  • PUT: Actualizar datos.
  • DELETE: Eliminar datos.
  • PATCH: Actualizar datos parcialmente.
  • HEAD: Recuperar encabezados de respuesta.
  • OPTIONS: Obtener información sobre la API.

Ejemplo:

  • Método: POST

3. Enlace

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

Ejemplo:

  • Enlace: https://api.ejemplo.com/datos

4. Datos

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

  1. Ignorar:
    Los datos de entrada no se utilizarán en la solicitud. El 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 consulta y se agregarán a la URL.

    Ejemplo:
    Si msg.payload contiene:

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

    Si el Enlace se especifica como http://ejemplo.com/api, la solicitud final será:
    GET http://ejemplo.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 métodos como POST, PUT y PATCH, 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 solicitud es POST, los datos se enviarán en el cuerpo de la solicitud con el contenido apropiado.

5. Retorno

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

Opciones:

  • Cadena UTF-8: La respuesta se convierte en una cadena (predeterminado).
  • Buffer: La respuesta se devuelve como un objeto Buffer (útil para datos binarios como imágenes o archivos).
  • JSON: Si la respuesta del servidor está en formato JSON, se convierte automáticamente en un objeto de JavaScript.

Ejemplo:

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

6. Autenticación

El nodo soporta mecanismos de autenticación integrados.

Autenticación Básica

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

Token Bearer

  • Token: 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 siguientes 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 establece en la configuración del nodo).
  3. msg.payload: Cuerpo de la solicitud (utilizado para métodos POST, PUT, PATCH).
  4. msg.headers: Encabezados de la solicitud HTTP (objeto).

Datos de Salida

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

  1. msg.payload: Datos de respuesta del servidor.
  2. msg.statusCode: Código de estado HTTP de la respuesta (por ejemplo, 200 o 404).
  3. msg.headers: Encabezados de 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: Realizando una solicitud GET

Configuraciones del nodo:

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

Flujo:

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

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


Ejemplo 2: Enviando datos a través de POST

Configuraciones del nodo:

  • Método: POST
  • URL: https://api.ejemplo.com/dispositivos
  • Datos: JSON

Flujo:

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

Código en el nodo function:

msg.payload = {
deviceId: "sensor123",
status: "activo"
};
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

Configuraciones del nodo:

  • URL: (dejar vacío)

Flujo:

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

Código en el nodo function:

msg.url = "https://api.ejemplo.com/usuario/123";
msg.headers = { Authorization: "Bearer TU_TOKEN" };
return msg;

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