Міндет және алғышарттар

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 жауабынан тапсырыстар. Мысал құрылымы: 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. Көрсетілген JSON қайтаратын өз сынақ HTTP қызметіңізді баптаңыз; example.invalid — жұмыс істеуі күтілмейтін толтырғыш мекенжай.
  2. Төмендегі баптаулармен REST API қосылымын жасап, тек сынақ қызметі мекенжайын алмастырыңыз және қажетті аутентификация тәсілін баптаңыз.
  3. Қосылымды алдын ала қарап, содан кейін ағынды орындаңыз және A1/A3 тексеріңіз.

Жиі қателер

  • Ресурс пен жауап өңдеуді қосылымда баптаңыз; external.extra_params нақты блокқа параметр қосады.
  • Әр жолға бір name=value параметрін бастапқы ? белгісінсіз жазыңыз.
  • API бірнеше бет қайтарса, pagination=none тек біреуін оқиды; ережені API келісіміне сай өзгертіңіз.
  • Authorization мәнін кәдімгі тақырыптарға жазбаңыз: құпияларды қосылымның арнайы өрісіне енгізіңіз.