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 múltiples métodos HTTP, tipos 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.
  • PATCH: Actualización parcial de datos.
  • HEAD: Obtener encabezados de respuesta.
  • OPTIONS: Obtener información sobre la API.

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:
    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 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 la solicitud es POST, los datos se enviarán en el cuerpo de la solicitud con el contenido correspondiente.

5. Retorno

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

Opciones:

  • Cadena UTF-8: La respuesta se convierte en una cadena (por defecto).
  • 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 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 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 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 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
  • URL: 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
  • URL: https://api.example.com/devices
  • Datos: JSON

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:

  • URL: (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.