Узел http request
Узел http request
предназначен для выполнения HTTP-запросов к внешним веб-сервисам или API. Он поддерживает множество методов HTTP, типы данных, аутентификацию и гибкое управление запросами и ответами.
Настройки узла http request
1. Name
Поле для указания имени узла.
Имя отображается в рабочей области и помогает легко идентифицировать узел.
Если оставить пустым, узел будет называться http request
.
Пример:
- Имя узла:
Get Weather Data
2. Method
HTTP-метод, который будет использоваться для запроса. Выбор метода зависит от типа операции, которую необходимо выполнить.
Доступные методы:
GET
: Получение данных.POST
: Отправка данных.PUT
: Обновление данных.DELETE
: Удаление данных.PATCH
: Частичное обновление данных.HEAD
: Получение заголовков ответа.OPTIONS
: Получение информации об API.
Пример:
- Method:
POST
3. Link
Поле для указания статического URL-адреса, к которому будет отправлен за прос.
Если адрес необходимо задавать динамически, его можно передать в msg.url
.
Пример:
- Link:
https://api.example.com/data
4. Data
Определяет, как входные данные будут добавлены к HTTP-запросу. Доступны следующие варианты:
-
Ignore:
Входные данные не будут использоваться в запросе. Полеmsg.payload
, если оно существует, будет проигнорировано.Пример:
Если вmsg.payload
содержится JSON-объект, он не будет включен в запрос.
-
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
.
-
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
с параметрами:
- msg.url: URL для запроса (если он не указан в настройках узла).
- msg.method: HTTP-метод (если не задан в настройках узла).
- msg.payload: Тело запроса (используется для методов
POST
,PUT
,PATCH
). - msg.headers: Заголовки HTTP-запроса (объект).
Выходные данные
Узел возвращает объект msg
с информацией о выполненном запросе:
- msg.payload: Данные ответа от сервера.
- msg.statusCode: HTTP-статус код ответа (например,
200
или404
). - msg.headers: Заголовки ответа.
- msg.responseUrl: URL, на который был выполнен запрос.
- 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 с токеном аутентификации.