Перейти до основного вмісту

Узел http in

Узел http in використовується для створення HTTP-ендпоінтів, які можуть обробляти вхідні HTTP-запити (GET, POST, PUT та інші). Цей узел — вхідна точка для взаємодії з зовнішніми системами через протокол HTTP.

Важливо: Усі задані шляхи автоматично отримують префікс: /api/admin/workflows/endpoints/.


Налаштування узла http in

IMG2

1. Name

Поле для вказівки імені узла.
Ім'я відображається в робочій області і допомагає легко ідентифікувати узел.
Якщо залишити порожнім, узел буде називатися http in.

Приклад:

  • Ім'я узла: get payment link

2. Method

HTTP-метод, який узел буде обробляти. Доступні наступні варіанти:

  • GET: Використовується для отримання даних.
  • POST: Використовується для відправки даних.
  • PUT: Використовується для оновлення даних.
  • DELETE: Використовується для видалення даних.
  • PATCH: Використовується для часткового оновлення даних.
  • OPTIONS: Використовується для запитів на отримання метаінформації про API.

Вказує шлях (endpoint) для обробки запитів.

  • Шлях починається з /.
  • Може включати змінні маршруту, наприклад: /data/:id.

Приклад:

  • Link: /get-payment-link
  • Link з параметром: /get-payment-link/:orderId

Формат вхідного повідомлення

Коли запит надходить на вказаний шлях з вибраним методом, узел http in створює повідомлення msg з наступними властивостями:

  • msg.req: Містить об'єкт HTTP-запиту, включаючи заголовки, параметри, тіло та інші дані.
    • msg.req.params: Параметри маршруту (наприклад, :id в /api/data/:id).
    • msg.req.query: GET-параметри запиту.
    • msg.req.body: Тіло запиту (для методів POST, PUT і PATCH).
  • msg.res: Об'єкт для управління HTTP-відповіддю. Зазвичай передається в узел http response для відправки відповіді клієнту.

Приклад використання

Приклад 1: Обробка GET-запиту

Сценарій: Повернення даних про температуру.

Налаштування узла:

  • Method: GET
  • Link: /temperature

Потік:

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

Код узла function:

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

Результат: Клієнт, що надіслав GET-запит на /api/admin/workflows/endpoints/temperature, отримає JSON-відповідь:

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

Приклад 2: Обробка POST-запиту

Сценарій: Прийом і збереження даних від пристрою.

Налаштування узла:

  • Method: POST
  • Link: /data

Потік:

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

Код узла function:

// Читання даних з тіла запиту
const data = msg.req.body;
msg.payload = { status: "success", receivedData: data };
return msg;

Результат: Узел прийме дані з тіла POST-запиту і поверне відповідь з підтвердженням.


Приклад 3: Використання параметрів маршруту

Сценарій: Отримання даних за ідентифікатором пристрою.

Налаштування узла:

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

Потік:

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

Код узла function:

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

Результат:

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