Перейти к основному содержимому

Узел 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"
}