Каталог модулів

Технічне завдання на API-інтеграцію: дані, події, помилки та приймання

Технічне завдання на API-інтеграцію: дані, події, помилки та приймання

Технічне завдання на API-інтеграцію має дати розробнику змогу реалізувати обмін, а власнику процесу — перевірити результат. Формулювання «передавати клієнтів, товари й замовлення» недостатнє: не визначені джерело, момент передавання, обов’язкові поля, правила оновлення, реакція на помилку та критерій завершення.

Корисне ТЗ будується від бізнес-події. Спочатку описують, що сталося і який результат потрібен обом системам, далі — об’єкти, поля, ідентифікатори, послідовність викликів, повтори, безпеку, моніторинг і приймальні сценарії.

Почніть із межі та потрібного результату

Зафіксуйте мету одним абзацом без технічних прикрас. Наприклад: «Після підтвердження замовлення в інтернет-магазині створити його в контурі виконання, зарезервувати доступний товар і повернути підтверджений номер та стан. Відвантаження й скасування передавати назад».

Поруч перелічіть те, що не входить до етапу: історичні замовлення, бухгалтерські документи, очищення довідника або зворотне редагування товару. Явна межа захищає запуск від нескінченного розширення.

Розділ ТЗНа яке питання відповідаєПеревірюваний результат
Мета і межіЯкий процес поєднуємоЗрозуміло, що входить у запуск
Об’єкти та власникиДе створюються істинні даніНемає конфліктного редагування
Події та послідовністьКоли й у якому порядку передаватиПроцес відтворюється
Помилки та повториЯк обмін відновлюєтьсяНемає дублів і тихих втрат
МоніторингХто побачить відхиленняПроблема має власника
ПрийманняЯк довести готовністьЄ однозначні тести

Складіть реєстр об’єктів і майстер-систем

Для клієнта, товару, ціни, залишку, замовлення, оплати та статусу визначте авторитетну систему. Якщо поле можна змінювати в обох, опишіть розв’язання конфлікту. «Двостороння синхронізація» без правила породжує цикли оновлень і випадкові перезаписи.

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

Описуйте поля разом із поведінкою

Таблиця полів має містити не лише назву й тип. Додайте обов’язковість, джерело, допустимі значення, перетворення, поведінку порожнього значення та приклад без персональних даних.

ПолеПравилоПомилка або особливий випадок
external_idСтабільний унікальний ключ джерелаПовтор оновлює той самий об’єкт
statusЗіставляється за затвердженою таблицеюНевідоме значення потрапляє до черги розбору
amountПередається з валютою та правилом округленняРозбіжність блокує фінансове підтвердження
updated_atЧас зміни з часовим поясомСтара подія не перезаписує новий стан
warehouse_idПосилання на відповідність складівНевідомий склад потребує налаштування

Зафіксуйте події та порядок

Для кожного сценарію вкажіть тригер, передумови, запит, очікувану відповідь і наступні дії. «Замовлення змінено» надто широке: зміна коментаря, адреси та складу позицій має різні наслідки після початку комплектування.

  1. Джерело фіксує бізнес-подію у власній транзакції.
  2. Подія потрапляє до надійної черги обміну.
  3. Одержувач перевіряє ідентифікатор і версію даних.
  4. Операція виконується один раз і повертає однозначний результат.
  5. Джерело відмічає доставку або планує повтор.
  6. Контрольна звірка знаходить рідкісні пропуски.

Опишіть повтор до першого збою

Мережа може обірватися після виконання операції, але до отримання відповіді. Тому повтор має бути безпечним. Клієнт передає idempotency key або стійкий ідентифікатор операції, а сервер повертає попередній результат замість створення дубля.

Розділіть тимчасові та бізнес-помилки. Таймаут або недоступність сервісу допускають автоматичний повтор. Невідомий товар, закритий склад або заборонений перехід статусу потребують виправлення даних чи рішення оператора.

Перетворіть технічний журнал на контроль

Логи корисні розробнику, але бізнесу потрібна черга відхилень: об’єкт, операція, причина, кількість спроб, час наступного повтору та відповідальний. Для критичних подій задають контрольний строк. Підтверджене замовлення не повинно залишатися без результату резерву довше погодженого інтервалу.

Сценарій прийманняОчікуваний результатЩо доводить
Звичайне створенняОб’єкт створено, ідентифікатори пов’язаніОсновний маршрут
Повтор того самого запитуДубль не створено, повернуто попередній результатІдемпотентність
Одержувач недоступнийПодію збережено й доставлено після відновленняНадійність черги
Некоректне полеЗрозуміла помилка та завдання відповідальномуКерованість даних
Події надійшли не за порядкомСтарий стан не перезаписав новийКонтроль версій
Контрольна звіркаНавмисно пропущений об’єкт знайденоВиявлення тихої втрати

Безпека й експлуатація

У ТЗ фіксують спосіб авторизації, мінімальні права, зберігання секретів, шифрування каналу, обмеження частоти, маскування персональних даних у логах і порядок зміни ключів. Бойові доступи не додають до документа чи прикладів.

Також потрібні власники систем, контакт під час інциденту, допустиме вікно недоступності, порядок зупинки й повторного запуску, версія API та політика сумісності.

Фінальна перевірка

  • мета сформульована як бізнес-результат;
  • межі етапу та винятки перелічені;
  • для кожного об’єкта визначено майстер-джерело;
  • правила ідентифікаторів і відповідностей описані;
  • події мають тригери та передумови;
  • повтори не створюють дублі;
  • помилки розділені за способом обробки;
  • моніторинг показує об’єкт і відповідального;
  • приймання включає негативні сценарії;
  • правила безпеки й експлуатації погоджені.

Технічне завдання готове, коли за ним можна не лише написати код, а й довести правильність обміну під час нормальної роботи та збоїв. Для інтеграцій навколо ядра Business Reactor такий контракт зберігає єдину логіку замовлень, статусів і відповідальності між підключеними системами.

API, технічне завдання, інтеграція, обмін даними, ідемпотентність, Business Reactor

0
18
Коментарі
Схожі статті