Перейти до вмісту
На сайт

Студія трансформацій

«Студія трансформацій» показує, на що трансформація перетворює вміст і що отримав би ендпоінт. Запуск нічого не надсилає, тож він безпечний і на робочій трансформації.

У панелі керування це Розробка → Студія трансформацій. В API це POST /api/v1/projects/{projectId}/transform-preview і POST /api/v1/projects/{projectId}/transform-preview/delivery-dry-run; див. довідник API.

Режим На що відповідає Що потрібно
Попередній перегляд Що трансформація робить із цим вмістом. Вміст події та збережена трансформація, шаблон або скрипт.
Пробний запуск Який HTTP-запит пішов би на вказаний ендпоінт: тіло, заголовки й підпис. Те саме плюс ендпоінт.

Попередньому перегляду достатньо доступу на читання. Пробний запуск повертає справжній підпис, обчислений секретом підпису ендпоінта, а з ним можна підробити тіло, яке ендпоінт прийме. Тому він вимагає доступу на запис і API-ключа READ_WRITE. Див. Автентифікацію.

Попередній перегляд шаблона

Section titled “Попередній перегляд шаблона”
  1. Задайте вміст. Вставте його або натисніть «Завантажити подію» і візьміть справжню подію з проєкту. Справжній вміст знаходить помилки, яких не покаже вигаданий приклад.

  2. Виберіть, що запускати. Візьміть збережену трансформацію або впишіть у поле виразу:

    • Поле, що починається з { або [, вважається JSON-шаблоном, тим самим шаблоном із ${$.path}, який має трансформація. Див. Трансформації.
    • Будь-що інше вважається одним витягом, наприклад $.data, у формі, яку приймає payloadTransform призначення.
    • Порожнє поле означає прохід без змін: вміст повертається відформатованим і незміненим.
  3. Запустіть. Панель результату показує, що вийшло, чи це відрізняється від вхідного вмісту, і всі помилки. Витяг, що нічого не знайшов, повертає null і повідомляє про це: у шаблоні це не помилка, тож помітити це можна саме тут.

Як запустити трансформацію на JavaScript

Section titled “Як запустити трансформацію на JavaScript”

Перемикач «Мова» вибирає «Шаблон» або JavaScript. У режимі JavaScript поле стає редактором коду, а студія виконує рушій воркера з тією самою пісочницею й обмеженнями TRANSFORM_SCRIPT_*, тож скрипт, який працює тут, працює й на доставці. Що отримує й має повернути handler(webhook), описано в контракті JavaScript.

  • ⌘/Ctrl+Enter запускає, ⌘/Ctrl+S зберігає.
  • Чотири вкладки: «Вхід», «Вихід», «Різниця» і «Консоль». Успішний запуск відкриває «Вихід», невдалий відкриває «Консоль».
  • console.log, info, warn, error і debug потрапляють на вкладку «Консоль», зокрема й те, що скрипт записав перед помилкою.
  • У разі невдачі студія називає причину й підсвічує рядок у вашому скрипті.
  • Скрипт, який повернув { cancel: true }, показано як скасування, а не помилку. На справжній доставці нічого не було б надіслано, повторено чи додано до «Недоставлених повідомлень».

Пробний запуск доставки

Section titled “Пробний запуск доставки”

Перемкніть режим на «Пробний запуск» і виберіть цільовий ендпоінт. Результат — запит, який він отримав би:

  • трансформоване тіло,
  • заголовки, зокрема ваші власні,
  • X-Signature над цим тілом, обчислений поточним секретом підпису ендпоінта,
  • адреса ендпоінта, а також назва й версія застосованої трансформації.

Нічого не надсилається. Вимкнений ендпоінт теж можна запустити пробно, з попередженням.

Запуск нічого не змінює; збереження є окремою дією.

  • «Зберегти скрипт» записує вміст редактора у вибрану трансформацію. Це публікує нову версію, як і збереження через API; див. історію версій.
  • «Зберегти як трансформацію» створює в цьому проєкті нову трансформацію під назвою, яку ви дасте. Після цього її можуть використовувати підписки й призначення.
  • Якщо трансформацію не вибрано, написане лишається чернеткою і зникає разом зі сторінкою.
  • Вона не вибирає трансформацію, яку взяла б справжня доставка. Вона застосовує ту, яку ви назвали. Налаштування підписки й правила не враховуються, тож правило, що підміняє трансформацію, тут не видно.
  • Пробний запуск не відтворює запит байт у байт. Справжня доставка несе ще X-Event-Id, X-Delivery-Id, X-Sequence-Number та Idempotency-Key, які з’являються лише разом із доставкою. Перевіряйте ним тіло й секрет підпису.
  • Підпис завжди у формі t=…,v1=…. Ендпоінт зі схемою Standard Webhooks підписується заголовками webhook-id, webhook-timestamp і webhook-signature, яких пробний запуск не формує. Див. Підписи.
  • Нічого не надсилається, тож нічого не підтверджено. Пробний запуск не скаже, чи ендпоінт прийме тіло. Для справжнього запиту скористайтеся тестовою консоллю або надішліть тестову подію.
  • Ендпоінт має бути в цьому ж проєкті. Ендпоінт із сусіднього проєкту повертається як «не знайдено», як і ендпоінт чужої організації, тож пробним запуском не з’ясувати, які ідентифікатори існують.