
Дизайн RESTful API та інтеграція WebSocket
Побудова та використання API ринкових даних і торгівлі
REST: ресурси та дієслова
REST відображає CRUD на HTTP: GET для читання, POST для створення, PATCH для часткового оновлення, DELETE для видалення. Використовуйте статус-коди чесно — 200 з JSON-помилкою всередині ламає клієнтів.
Версіонуйте у шляху (/v1/), пагінуйте великі списки (курсорні стрічки для потоків, що лише додаються), і документуйте зворотньо-несумісні зміни з періодом застереження про застарілість (deprecation window).
Ключі та HMAC
API-ключі ідентифікують; секрети підтверджують. Для торгових ендпоінтів підписуйте через HMAC канонічний рядок (метод + шлях + тіло + часова метка), щоб секрет ніколи не проходив по мережі. Відхиляйте застарілі часові метки, щоб блокувати повторні відправлення (replay) — ±30 секунд — типове вікно.
OAuth підходить для сторонніх застосунків; чисті торгові боти зазвичай залишаються на схемі ключ+HMAC. Обмеження частоти запитів: очікуйте 429 і поважайте заголовок Retry-After.
Оновлення протоколу WebSocket
Сесія починається як HTTP GET з заголовком Upgrade: websocket; сервер повертає 101 Switching Protocols. Після цього фрейми обходяться дешевше порівняно з повторними TLS-хендшейками при HTTP-опитуванні (polling).
Повідомлення про підписку зазвичай мають формат JSON: метод, канали, а іноді — підписи автентифікації для приватних виконань (fills).
Книги ордерів, угоди, відновлення
Потік угод — це тікові дані; книги ордерів — це знімок + дельта з порядковими номерами (sequence numbers). Якщо ви пропустили номери послідовності, виконайте пересинхронізацію зі знімка REST, а потім застосуйте дельти з sequence > snapshot.
Heartbeat: надсилайте ping або очікуйте пінги від сервера; переприєднуйтесь з випадковою затримкою (jittered backoff), щоб уникнути «стадного ефекту» (thundering herd).
GraphQL та OpenAPI
GraphQL скорочує надлишкове отримання даних для дашбордів; багато бірж і досі надають REST для торгових «гарячих шляхів». Специфікації OpenAPI (Swagger) допомагають генерації коду та QA — тримайте приклади готовими до копіювання й вставки.
Мінімальний паттерн споживача
Запустіть цикл WebSocket у окремій задачі, вкладайте останні ціни у thread-safe карту, надайте HTTP для перевірок стану (health checks). Логуйте кількість переприєднань; сповіщайте, коли вони зростають.
Розмістіть тести підпису та розбіжності годинника (clock skew) у CI: зламаний HMAC у продакшені неможливо відрізнити від «ринок просто рухнув», доки ви не проаналізуєте логи.