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, 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

IMG2

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 nodo http 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"
}