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

Узел 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 з токеном аутентифікації.