Покрокова інструкція
Markdown статтіПовідомити про помилку

Як отримати дані з API за допомогою send_request

Дія send_request дає змогу отримувати дані із зовнішніх API та обробляти відповідь у сценарії. Це корисно для отримання курсу валют, погоди, інформації про замовлення з CRM та інших даних.

Секрети для сценаріїв: якщо адміністратор увімкнув збережені секрети, дані автентифікації вставляють у URL, заголовки або тіло запиту ноди Send Request через Вставити поле credential чи Вставити auth header. Див. керування секретами та секрет у Send Request.

  1. Дія send_request надсилає HTTP-запит на вказаний URL
  2. Отримує відповідь у форматі JSON
  3. Обробляє відповідь через response_mapping або зберігає у стані сценарію
  4. Дані стають доступними в сценарії через плейсхолдери

Обробка JSON-об'єкту у відповідь

Приклад 1: Отримання назви завдання

Конфігурація:

{
  "url": "https://jsonplaceholder.typicode.com/todos/1",
  "method": "GET",
  "response_mapping": {
    "title": "task_title"
  }
}

Пояснення:

  • response_mapping вказує, в який плейсхолдер записати параметр відповіді
  • Поле відповіді API title буде доступне у сценарії як {{task_title}}.

Використання в сценарії:

Після виконання запиту використовуйте {{task_title}} у наступних нодах сценарію. JSONPlaceholder — публічний тестовий API; у робочому середовищі використовуйте власну контрольовану кінцеву точку API.

Обробка масиву об'єктів у відповідь

Приклад 2: Отримання курсу валют

Конфігурація:

{
  "url": "https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5",
  "method": "GET",
  "response_mapping": {
    "list_obj": {
      "text": "{{ccy}}/{{base_ccy}}",
      "value": "{{buy}}"
    }
  },
  "save_mapped_list_obj": "currency_mapped_obj"
}

Пояснення конфігурації:

  • list_obj — вказує, що ми обробляємо масив об'єктів
  • text — текст, який буде відображатися (може містити плейсхолдери з відповіді API)
  • value — значення, яке буде збережено при виборі (може містити плейсхолдери з відповіді API)
  • save_mapped_list_obj — назва змінної, в яку буде збережено оброблений масив

Приклад відповіді API:

[
  {
    "ccy": "USD",
    "base_ccy": "UAH",
    "buy": "36.56860"
  },
  {
    "ccy": "EUR",
    "base_ccy": "UAH",
    "buy": "40.20000"
  }
]

Результат обробки:

Після обробки currency_mapped_obj буде містити:

[
  {
    "text": "USD/UAH",
    "value": "36.56860"
  },
  {
    "text": "EUR/UAH",
    "value": "40.20000"
  }
]

Використання в блоці "Список":

В блоці "Список" вкажіть змінну {{currency_mapped_obj}} як джерело даних. Блок буде отримувати дані про курс валют і виводити їх кнопками.

Використання результату вибору:

Після вибору користувачем валюти, ви можете використовувати результат в сценарії, наприклад вивести курс валюти.

Збереження необробленого результату запиту

Якщо до блоку send_request додати параметр конфігурації save_responce, результат виконання запиту буде записаний у змінну стану:

{
  "url": "https://api.example.com/data",
  "method": "GET",
  "save_responce": "currency_arr"
}

Після виконання запиту вся JSON-відповідь буде доступна у змінній {{currency_arr}} для подальшої обробки через Action Jail або інші механізми.

Обробка помилок

Якщо API-запит завершився помилкою:

  • Дія повертає "not_ok"
  • response_mapping не виконується
  • save_responce не зберігається

В сценарії можна обробити подію "not_ok" для:

  • Повторної спроби
  • Відправки повідомлення користувачу
  • Використання резервного джерела даних

Обмеження

  • response_mapping працює тільки з успішними відповідями (HTTP 200)
  • Максимальний розмір відповіді обмежений налаштуваннями системи
  • Складні вкладені структури можуть потребувати додаткової обробки в Бібліотеці дій

Пов'язані статті

Працюєте з власним ШІ-агентом?Встановіть відкритий skill, щоб ваш ШІ-агент працював з актуальною офіційною документацією ConnectiveOne.Отримати skillПотрібна підтримка?Не знайшли відповідь або потрібна допомога команди ConnectiveOne? Створіть запит у Client Portal.Створити запит