მთავარ შინაარსზე გადახტომა

Узел http request

Узел http request предназначен для выполнения HTTP-запросов к внешним веб-сервисам или API. Он поддерживает множество методов HTTP, типы данных, аутентификацию и гибкое управление запросами и ответами.


Настройки узла http request

IMG2

1. Name

Поле для указания имени узла.
Имя отображается в рабочей области и помогает легко идентифицировать узел.
Если оставить пустым, узел будет называться http request.

Пример:

  • Имя узла: Get Weather Data

2. Method

HTTP-метод, который будет использоваться для запроса. Выбор метода зависит от типа операции, которую необходимо выполнить.

Доступные методы:

  • GET: Получение данных.
  • POST: Отправка данных.
  • PUT: Обновление данных.
  • DELETE: Удаление данных.
  • PATCH: Частичное обновление данных.
  • HEAD: Получение заголовков ответа.
  • OPTIONS: Получение информации об API.

Пример:

  • Method: POST

Поле для указания статического URL-адреса, к которому будет отправлен запрос.
Если адрес необходимо задавать динамически, его можно передать в msg.url.

Пример:

  • Link: https://api.example.com/data

4. Data

Определяет, как входные данные будут добавлены к HTTP-запросу. Доступны следующие варианты:

  1. Ignore:
    Входные данные не будут использоваться в запросе. Поле msg.payload, если оно существует, будет проигнорировано.

    Пример:
    Если в msg.payload содержится JSON-объект, он не будет включен в запрос.


  1. Add to query parameters:
    Данные из msg.payload будут преобразованы в параметры строки запроса (Query Parameters) и добавлены к URL.

    Пример:
    Если msg.payload содержит:

    {
    "key1": "value1",
    "key2": "value2"
    }

    Если Link указан как http://example.com/api, то итоговый запрос будет:
    GET http://example.com/api?key1=value1&key2=value2.


  1. Send as request body (Отправить в теле запроса):
    Данные из msg.payload будут отправлены в теле запроса. Этот вариант подходит для методов, таких как POST, PUT, и PATCH, где данные часто передаются в теле.

    Пример:
    Если msg.payload содержит:

    {
    "name": "John Doe",
    "email": "john.doe@example.com"
    }

    Если метод запроса — POST, данные будут отправлены в теле запроса с соответствующим содержимым.

5. Return

Определяет, в каком формате узел обработает ответ от сервера.

Варианты:

  • UTF-8 string: Ответ преобразуется в строку (по умолчанию).
  • Buffer: Ответ возвращается в виде объекта Buffer (полезно для бинарных данных, таких как изображения или файлы).
  • JSON: Если ответ сервера в формате JSON, он автоматически преобразуется в объект JavaScript.

Пример:

  • Если выбрано JSON, ответ:
    {"status": "ok", "value": 42}
    Преобразуется в:
    msg.payload = { status: "ok", value: 42 };

6. Authentication

Узел поддерживает встроенные механизмы аутентификации.

Basic Auth

  • Username: Имя пользователя.
  • Password: Пароль.

Bearer Token

  • Token: Токен доступа.

Digest

  • Username: Имя пользователя.
  • Password: Пароль.

Входные данные

Узел http request принимает объект сообщения msg с параметрами:

  1. msg.url: URL для запроса (если он не указан в настройках узла).
  2. msg.method: HTTP-метод (если не задан в настройках узла).
  3. msg.payload: Тело запроса (используется для методов POST, PUT, PATCH).
  4. msg.headers: Заголовки HTTP-запроса (объект).

Выходные данные

Узел возвращает объект msg с информацией о выполненном запросе:

  1. msg.payload: Данные ответа от сервера.
  2. msg.statusCode: HTTP-статус код ответа (например, 200 или 404).
  3. msg.headers: Заголовки ответа.
  4. msg.responseUrl: URL, на который был выполнен запрос.
  5. msg.error: Описание ошибки (если запрос завершился неудачно).

Примеры использования

Пример 1: Выполнение GET-запроса

Настройки узла:

  • Method: GET
  • URL: https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London

Поток:

[inject] ---> [http request] ---> [debug]

Результат: Узел вернет JSON с текущей погодой.


Пример 2: Отправка данных через POST

Настройки узла:

  • Method: POST
  • URL: https://api.example.com/devices
  • Data: JSON

Поток:

[function] ---> [http request] ---> [debug]

Код в узле function:

msg.payload = {
deviceId: "sensor123",
status: "active"
};
msg.headers = { "Content-Type": "application/json" };
return msg;

Результат: Данные будут отправлены, а узел вернет ответ сервера.


Пример 3: Динамический URL и аутентификация

Настройки узла:

  • URL: (оставить пустым)

Поток:

[function] ---> [http request] ---> [debug]

Код в узле function:

msg.url = "https://api.example.com/user/123";
msg.headers = { Authorization: "Bearer YOUR_TOKEN" };
return msg;

Результат: Узел выполнит запрос к указанному URL с токеном аутентификации.