Saltar al contenido principal

Nodo http in

El nodo http in crea endpoints HTTP que procesan solicitudes HTTP entrantes (GET, POST, PUT y otras). Es el punto de entrada para interactuar con sistemas externos mediante el protocolo HTTP.

Importante: todas las rutas que configures reciben automáticamente el prefijo /api/admin/workflows/endpoints/.


Configuración del nodo http in​

Ventana «Node Information» del nodo «http in»: método «POST» y la ruta /get-payment-link en el campo «Link»

1. Name​

Nombre del nodo.
Se muestra en el área de trabajo y ayuda a identificar el nodo.
Si lo dejas vacío, el nodo se llamará http in.

Ejemplo:

  • Nombre del nodo: get payment link

2. Method​

Método HTTP que procesa el nodo. Opciones disponibles:

  • GET: obtener datos.
  • POST: enviar datos.
  • PUT: actualizar datos.
  • DELETE: eliminar datos.
  • PATCH: actualizar datos parcialmente.
  • OPTIONS: solicitar metainformación sobre la API.

Ruta (endpoint) en la que el nodo procesa las solicitudes.

  • La ruta empieza por /.
  • Puede incluir variables de ruta, por ejemplo: /data/:id.

Ejemplo:

  • Link: /get-payment-link
  • Link con parámetro: /get-payment-link/:orderId

4. Protected​

Casilla que protege el endpoint. Está activada por defecto.

5. Output Example (JSON)​

Ejemplo, en formato JSON, de los datos que el nodo pasa al resto del flujo.
A partir de este ejemplo se genera el esquema de datos del nodo siguiente: sus campos aparecen en el bloque Input Schema de ese nodo. Si el campo está vacío o contiene un JSON no válido, el esquema no se pasa al resto del flujo.


Formato del mensaje de entrada​

Cuando llega una solicitud a la ruta configurada con el método seleccionado, el nodo http in crea un mensaje msg con estas propiedades:

  • msg.req: objeto de la solicitud HTTP, con los encabezados, los parámetros, el cuerpo y otros datos.

    • msg.req.params: parámetros de ruta (por ejemplo, :id en /api/data/:id).
    • msg.req.query: parámetros GET de la solicitud.
    • msg.req.body: cuerpo de la solicitud (para los métodos POST, PUT y PATCH).
  • msg.res: objeto para gestionar la respuesta HTTP. Normalmente se pasa al nodo http response, que envía la respuesta al cliente.


Ejemplos de uso​

Ejemplo 1: procesar una solicitud GET​

Escenario: devolver datos de temperatura.

Configuración del nodo:

  • Method: GET
  • Link: /temperature

Flujo:

[http in] ---> [function] ---> [http response]

Código del nodo function:

msg.payload = { temperature: 22.5, unit: "Celsius" };
return msg;

Resultado: el cliente que envía una solicitud GET a /api/admin/workflows/endpoints/temperature recibe esta respuesta JSON:

{
"temperature": 22.5,
"unit": "Celsius"
}

Ejemplo 2: procesar una solicitud POST​

Escenario: recibir y guardar datos de un dispositivo.

Configuración del nodo:

  • Method: POST
  • Link: /data

Flujo:

[http in] ---> [function] ---> [http response]

Código del nodo function:

// Leer los datos del cuerpo de la solicitud
const data = msg.req.body;
msg.payload = { status: "success", receivedData: data };
return msg;

Resultado: el nodo recibe los datos del cuerpo de la solicitud POST y devuelve una respuesta de confirmación.


Ejemplo 3: usar parámetros de ruta​

Escenario: obtener datos según el identificador del dispositivo.

Configuración del nodo:

  • Method: GET
  • Link: /device/:id

Flujo:

[http in] ---> [function] ---> [http response]

Código del nodo function:

const deviceId = msg.req.params.id;
msg.payload = { deviceId: deviceId, status: "active" };
return msg;

Resultado:

{
"deviceId": "123",
"status": "active"
}