Завдання та передумови

Прочитати ресурс API, витягти масив data.items, залишити відкриті замовлення й сформувати Excel.

Приклад містить навчальні дані та налаштування. Виберіть власні тестові джерела й підключення замість ідентифікаторів demo_*, відтворіть очікуваний результат і лише потім використовуйте робочі об’єкти.

Налаштування прикладного підключення:

{
  "kind": "rest_api",
  "name": "Навчальні замовлення API",
  "options": {
    "base_url": "https://example.invalid/api",
    "auth": "none",
    "resource_path": "/orders",
    "method": "GET",
    "response_format": "json",
    "records_path": "data.items",
    "pagination": "none",
    "timeout": 60
  }
}

Навчальні вхідні дані

{
  "data": {
    "items": [
      {
        "id": "A1",
        "status": "open",
        "total": 120
      },
      {
        "id": "A2",
        "status": "closed",
        "total": 60
      },
      {
        "id": "A3",
        "status": "open",
        "total": 90
      }
    ]
  }
}

Блоки, зв’язки й точні налаштування

Пояснювальна схемаЗбільшити ↗15. REST API: замовлення з відповіді JSON. Топологія прикладу 15: 3 блоки, 2 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.
Схема потоку 15

Топологія прикладу 15: 3 блоки, 2 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.

Додайте наведені блоки в конструктор, відкрийте властивості кожного й установіть такі значення. Назви demo_* позначають навчальні джерела та підключення.

БлокНалаштування
1
Підключення
api
  • Роль: source
  • Підключення: demo_api_orders
  • Зовнішній об’єкт:
    • extra_params: region=UA
2
Фільтрація
filter
  • Режим: all
  • Умови відбору:
      • column: status
      • Операція: eq
      • Значення: open
      • Числове порівняння: ні
      • value_mode: constant
3
Вивантаження даних
out
  • Формат: xlsx
  • Ім’я файлу: api_open_orders
  • Призначення: download
  • Роздільник: ;
  • Часовий пояс: Europe/Kyiv

Зв’язки портів

  • api out → filter in
  • filter out → out in
Повна конфігурація графа JSON
{
  "version": 3,
  "nodes": [
    {
      "id": "api",
      "type": "connection",
      "label": "api",
      "config": {
        "role": "source",
        "connection_id": "demo_api_orders",
        "external": {
          "extra_params": "region=UA"
        }
      }
    },
    {
      "id": "filter",
      "type": "filter",
      "label": "filter",
      "config": {
        "mode": "all",
        "predicates": [
          {
            "column": "status",
            "op": "eq",
            "value": "open",
            "numeric": false,
            "value_mode": "constant"
          }
        ]
      }
    },
    {
      "id": "out",
      "type": "export",
      "label": "out",
      "config": {
        "format": "xlsx",
        "filename": "api_open_orders",
        "destination": "download",
        "delimiter": ";",
        "timezone": "Europe/Kyiv"
      }
    }
  ],
  "edges": [
    {
      "source": "api",
      "target": "filter",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "filter",
      "target": "out",
      "source_port": "out",
      "target_port": "in"
    }
  ]
}

Очікуваний результат

idstatustotal
A1open120
A3open90

За умови, що тестовий API повертає наведений документ, api_open_orders.xlsx міститиме два замовлення із сумою total=210.

Запуск і перевірка

  1. Налаштуйте власний тестовий HTTP-сервіс, який повертає наведений JSON; example.invalid — адреса-заповнювач, вона не повинна працювати.
  2. Створіть REST API-підключення з налаштуваннями нижче, замініть лише адресу тестового сервісу та задайте потрібний спосіб автентифікації.
  3. Перевірте попередній перегляд підключення; потім виконайте потік і звірте A1/A3.

Типові помилки

  • Налаштування ресурсу й обробки відповіді задавайте у підключенні; external.extra_params додає параметри конкретного блоку.
  • Параметри записуються по одному name=value в рядку, без початкового знака ?.
  • Якщо API повертає кілька сторінок, pagination=none прочитає тільки одну; змініть політику відповідно до контракту вашого API.
  • Не додавайте Authorization у звичайні заголовки: секрети вводяться у спеціальному полі підключення.