Nodo http in
El nodo http in
se utiliza para crear puntos finales HTTP que pueden manejar solicitudes HTTP entrantes (GET, POST, PUT, entre otros). Este nodo sirve como el punto de entrada para interactuar con sistemas externos a través del protocolo HTTP.
Importante: Todos los caminos especificados reciben automáticamente el prefijo: /api/admin/workflows/endpoints/
.
Configuraciones para el nodo http in
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 in
.
Ejemplo:
- Nombre del nodo:
obtener enlace de pago
2. Método
El método HTTP que el nodo manejará. Las siguientes opciones están disponibles:
- GET: Utilizado para recuperar datos.
- POST: Utilizado para enviar datos.
- PUT: Utilizado para actualizar datos.
- DELETE: Utilizado para eliminar datos.
- PATCH: Utilizado para actualizar datos parcialmente.
- OPTIONS: Utilizado para solicitudes para obtener metadatos sobre la API.
3. Enlace
Especifica la ruta (punto final) para manejar solicitudes.
- La ruta comienza con
/
. - Puede incluir parámetros de ruta, por ejemplo:
/data/:id
.
Ejemplo:
- Enlace:
/obtener-enlace-de-pago
- Enlace con parámetro:
/obtener-enlace-de-pago/:orderId
Formato del mensaje entrante
Cuando se recibe una solicitud en la ruta especificada con el método seleccionado, el nodo http in
crea un mensaje msg
con las siguientes propiedades:
-
msg.req
: Contiene el objeto de solicitud HTTP, incluidos encabezados, parámetros, cuerpo y otros datos.msg.req.params
: Parámetros de ruta (por ejemplo,:id
en/api/data/:id
).msg.req.query
: Parámetros de solicitud GET.msg.req.body
: El cuerpo de la solicitud (para métodos POST, PUT y PATCH).
-
msg.res
: Un objeto para gestionar la respuesta HTTP. Generalmente se pasa al nodohttp response
para enviar una respuesta de vuelta al cliente.
Ejemplo de uso
Ejemplo 1: Manejo de una solicitud GET
Escenario: Devolviendo datos de temperatura.
Configuraciones del nodo:
- Método:
GET
- Enlace:
/temperatura
Flujo:
[http in] ---> [function] ---> [http response]
Código para el nodo function
:
msg.payload = { temperatura: 22.5, unidad: "Celsius" };
return msg;
Resultado: El cliente que envía una solicitud GET a /api/admin/workflows/endpoints/temperatura
recibirá una respuesta JSON:
{
"temperatura": 22.5,
"unidad": "Celsius"
}
Ejemplo 2: Manejo de una solicitud POST
Escenario: Recibiendo y guardando datos de un dispositivo.
Configuraciones del nodo:
- Método:
POST
- Enlace:
/data
Flujo:
[http in] ---> [function] ---> [http response]
Código para el nodo function
:
// Leyendo datos del cuerpo de la solicitud
const data = msg.req.body;
msg.payload = { estado: "éxito", datosRecibidos: data };
return msg;
Resultado: El nodo aceptará datos del cuerpo de la solicitud POST y devolverá una respuesta de confirmación.
Ejemplo 3: Uso de parámetros de ruta
Escenario: Recuperando datos por ID de dispositivo.
Configuraciones del nodo:
- Método:
GET
- Enlace:
/dispositivo/:id
Flujo:
[http in] ---> [function] ---> [http response]
Código para el nodo function
:
const deviceId = msg.req.params.id;
msg.payload = { deviceId: deviceId, estado: "activo" };
return msg;
Resultado:
{
"deviceId": "123",
"estado": "activo"
}