Saltar al contenido principal

Nodo http in

El nodo http in se utiliza para crear puntos finales HTTP que pueden manejar solicitudes HTTP entrantes (GET, POST, PUT y otros). Este nodo es 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 del nodo http in

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 in.

Ejemplo:

  • Nombre del nodo: get payment link

2. Método

Método HTTP que el nodo manejará. Las siguientes opciones están disponibles:

  • GET: Se utiliza para obtener datos.
  • POST: Se utiliza para enviar datos.
  • PUT: Se utiliza para actualizar datos.
  • DELETE: Se utiliza para eliminar datos.
  • PATCH: Se utiliza para actualizar datos parcialmente.
  • OPTIONS: Se utiliza para solicitudes de obtención de metainformación sobre la API.

3. Enlace

Especifica la ruta (endpoint) para manejar las solicitudes.

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

Ejemplo:

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

Formato del mensaje de entrada

Cuando una solicitud llega a 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 la solicitud HTTP, incluyendo encabezados, parámetros, cuerpo y otros datos.
    • msg.req.params: Parámetros de la 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 métodos POST, PUT y PATCH).
  • msg.res: Objeto para gestionar la respuesta HTTP. Normalmente se pasa al nodo http response para enviar la respuesta al cliente.

Ejemplo de uso

Ejemplo 1: Manejo de una solicitud GET

Escenario: Devolver datos sobre la temperatura.

Configuraciones del nodo:

  • Método: GET
  • Enlace: /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 envió la solicitud GET a /api/admin/workflows/endpoints/temperature recibirá una respuesta JSON:

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

Ejemplo 2: Manejo de una solicitud POST

Escenario: Recepción y almacenamiento de datos desde un dispositivo.

Configuraciones del nodo:

  • Método: POST
  • Enlace: /data

Flujo:

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

Código del nodo function:

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

Resultado: El nodo recibirá datos del cuerpo de la solicitud POST y devolverá una respuesta de confirmación.


Ejemplo 3: Uso de parámetros de ruta

Escenario: Obtener datos por el identificador del dispositivo.

Configuraciones del nodo:

  • Método: GET
  • Enlace: /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"
}