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
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:
-
Ignorar:
Los datos de entrada no se utilizarán en la solicitud. El campomsg.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 la cadena de consulta (Query Parameters) y se agregarán a la URL.Ejemplo:
Simsg.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
.
-
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 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: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 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 especifica en la configuración del nodo).
- msg.payload: Cuerpo de la solicitud (se utiliza 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 realizada:
- msg.payload: Datos de la respuesta del servidor.
- msg.statusCode: Código de estado HTTP de la respuesta (por ejemplo,
200
o404
). - msg.headers: Encabezados de la 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: 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.