Задача и предварительные условия

Прочитайте ресурс API, извлеките массив data.items, оставьте открытые заказы и сформируйте Excel.

В примере используются демонстрационные данные и настройки. Проверьте ожидаемый результат в своей среде до подключения рабочих получателей. Идентификаторы demo_* условны: выберите собственные учебные подключения или источники в редакторе. JSON ниже показывает структуру блоков и связей, а не готовый архив потока для переноса.

Пример настроек подключения:

{
  "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 в обычные заголовки: вводите секреты в специальное поле подключения.