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
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:
-
Ignorar:
Los datos de entrada no se utilizarán en la solicitud. Elmsg.payload
, si existe, será ignorado.Ejemplo:
Simsg.payload
contiene un objeto JSON, no se incluirá en la solicitud.
-
Agregar a parámetros de consulta:
Los datos demsg.payload
se convertirán en parámetros de consulta y se agregarán a la URL.Ejemplo:
Simsg.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
.
-
Enviar como cuerpo de la solicitud:
Los datos demsg.payload
se enviarán en el cuerpo de la solicitud. Esta opción es adecuada para métodos comoPOST
,PUT
yPATCH
, donde los datos a menudo se envían en el cuerpo.Ejemplo:
Simsg.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:se convierte en:{"status": "ok", "value": 42}
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:
- msg.url: URL para la solicitud (si no se especifica en la configuración del nodo).
- msg.method: Método HTTP (si no se establece en la configuración del nodo).
- msg.payload: Cuerpo de la solicitud (utilizado para métodos
POST
,PUT
,PATCH
). - msg.headers: Encabezados de la solicitud HTTP (objeto).
Datos de Salida
El nodo devuelve un objeto msg
con información sobre la solicitud ejecutada:
- msg.payload: Datos de respuesta del servidor.
- msg.statusCode: Código de estado HTTP de la respuesta (por ejemplo,
200
o404
). - msg.headers: Encabezados de respuesta.
- msg.responseUrl: URL a la que se realizó la solicitud.
- 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.