GH GambleHub

Чеклист интеграции API

0) Быстрый обзор (кто что делает)

  • Владелец интеграции назначен
  • Контакты on-call (24×7/раб. часы) прописаны
  • Соглашенные SLO/SLA и окно поддержки релизов
  • Статус-страница и канал инцидентов (email/Slack/Webhook)

1) Доступы, окружения, версии

  • Доступ к sandbox/staging/production получен
  • Версия API подтверждена: `/v1` / заголовок `X-API-Version`
  • Allowlist IP и сетевые правила настроены
  • Часы и TZ: все времена в UTC, NTP синхронизация
  • Проверена совместимость SDK/клиентов по SemVer и матрице версий

2) Аутентификация и токены

  • Механизм согласован: OAuth2 Client Credentials / Auth Code + PKCE / API Key / mTLS
  • Срок жизни Access Token и ротация Refresh Token настроены
  • Для API Key: секрет показывается один раз, хранится в менеджере секретов
  • JWKS/JTI/`kid` проверяются, включен clock skew ±5 мин
  • `Authorization` заголовки не логируются (редакция)
Проверочный вызов:
bash curl -sS -H "Authorization: Bearer $TOKEN" https://api. example. com/v1/ping

3) Безопасность и приватность

  • TLS 1.2+ / HSTS, опционально mTLS
  • PII-минимизация: отправляем только нужное, маски в логах
  • Политика хранения и удаления (GDPR/DSAR) задокументирована
  • Secret rotation: активный/следующий ключ, план ролловера
  • Анти-абьюз: капча/скорость создания ключей/ограничения регистраций

4) Лимиты, квоты и бэкофф

  • Объявлены `X-RateLimit-` / `X-Quota-` заголовки
  • Клиент уважает 429 и `Retry-After`
  • Ретраи только для 5xx/408/429, экспоненциальный backoff + jitter
  • Предел попыток/времени задан (например, ≤ 5 попыток, ≤ 60с суммарно)

5) Идемпотентность и конфликты

  • Все write-операции отправляются с `Idempotency-Key` (TTL ≥ 24–72 ч)
  • Конфликт дубликатов → 409 IDEMP_REPLAY обрабатывается
  • ETag/`If-Match` для конкурентных обновлений включен (при наличии)
Пример:
bash curl -X POST /v1/payments \
-H "Idempotency-Key: pay-<uuid>" \
-d '{"amount":"12. 34","currency":"EUR"}'

6) Пагинация и инкрементальные дельты

  • Используется cursor/keyset пагинация (`next_cursor`, `has_more`)
  • Стабильная сортировка `(updated_at, id)` документирована
  • Инкрементальные выгрузки: watermark или change token
  • Перекрывающие окна (overlap 1–2 мин) и дедуп по `(id, version/seq)`

7) Формат ошибок и диагностика

  • Единый формат `application/problem+json` (RFC 7807)
  • Поддержка полей: `error_code`, `trace_id`, `retriable`, `detail`
  • Карта ошибок и действия клиента описаны (runbook)
Шаблон:
json
{
"type":"https://docs. example. com/errors/validation_failed",
"title":"Validation failed",
"status":422,
"error_code":"VAL_001",
"trace_id":"a1b2c3",
"retriable":false
}

8) Вебхуки: квитирование и повторы

  • Подтверждение успеха — любой 2xx; быстрый ACK после enqueue
  • Подпись HMAC (`X-Signature: sha256=...`), `X-Webhook-Id`, `X-Retry`
  • Политика ретраев: backoff + jitter, до 24–72 часов
  • DLQ + Replay: доступны и проверены
  • Дедуп-хранилище у приемника, TTL ≥ окна ретраев

9) Наблюдаемость и трассировка

  • Включены OpenTelemetry хуки в клиенте/SDK
  • Корреляция `trace_id`/`X-Request-ID` по всей цепочке
  • Дашборды: `requests_total`, `errors_total{status}`, `latency_p95`, `retry_count`, `429_rate`
  • Alarms: всплеск 5xx/429, рост p95, падение success rate, лаг вебхуков
PromQL (пример):
promql rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m])

10) Производительность и устойчивость

  • Пулы соединений, keep-alive, HTTP/2/3 где возможно
  • Параллелизм ограничен (backpressure), очередь клиента не «раздувается»
  • Политики circuit-breaker/timeout/fallback настроены
  • Тесты нагрузки: burst 10×, долгие соединения, холодный старт

11) Данные, валюты, время

  • Форматы: ISO-8601 UTC, деньги — десятичные строки/minor units, локали не зависят от окружения
  • Кодировки/языки согласованы (например, `Accept-Language` для сообщений, но `error_code` — машинный)
  • Политика округления/комиссий документирована

12) Сверки и отчетность (reconciliation)

  • Ежедневные/часовые сверки с контрольными суммами
  • API/выгрузки для сверок протестированы (CSV/JSON, манифесты/хэши)
  • Расхождения — в тикеты с ссылками на `trace_id`

13) Комплаенс и правовые аспекты

  • Условия использования API приняты (fair use/export control)
  • PII/держатели данных — роли и зоны хранения определены
  • Legal Hold/аудит-лог действий включены при инцидентах

14) Документация и портал разработчиков

  • OpenAPI/AsyncAPI актуальны, примеры «копировать-вставить» есть
  • SDK (TS/Py/Java/Go/.NET) — версии согласованы, Cookbook доступен
  • Try-it playground работает, песочные ключи активны
  • Changelog/депрекации/roadmap видны в портале

15) Тестирование: функциональные, негативные, хаос

Функциональные

  • CRUD/ключевые сценарии пройдены (happy path)
  • Пагинация/курсор/инкрементальные дельты

Негативные

  • 401/403/404/409/422/429/5xx и обработка `Retry-After`
  • Неверная подпись вебхука, просроченные токены, большие тела

Хаос

  • Drop 10–30% событий, reorder, задержки 1–10 мин
  • Отключение зависимостей (PSP/KYC) → корректный fallback/ошибки

16) Приемка и запуск (go-live)

  • Финальный PRR (Production Readiness Review) пройден
  • Канареечное включение: 10% → 25% → 50% → 100%
  • Авто-откат по SLO сигналам (ошибки/латентность/429)
  • Контактная матрица инцидентов и путь эскалации опубликованы
  • Бэклог CAPA после пилота сформирован

17) Эксплуатация и поддержка

  • Runbook/плейбуки: «5xx spike», «429 storm», «webhook backlog», «timeout»
  • Регулярные отчеты по SLO/Error Budget
  • Ротация секретов и ключей по расписанию
  • План депрекаций/миграций версий согласован (дата sunset)

18) Шаблоны артефактов

Шаблон env-конфига

yaml api:
base_url: https://api. example. com/v1 timeout_ms: 10000 retries: { max: 5, strategy: expo-jitter }
auth:
kind: oauth2 token_url: https://auth. example. com/oauth2/token scopes: [wallet:read, wallet:write]
webhooks:
secret_ref: secret/webhook-hmac parallelism: 10 max_body_kb: 256

Политика ретраев (псевдо)

json
{"initial":1,"max":60,"factor":2. 0,"jitter":0. 2,"retriable":["5xx","408","429"]}

19) Итоговый чек-лист «на подпись»

  • Окружения/версии/ключи/allowlist готовы
  • Auth/JWT/keys/mTLS настроены и протестированы
  • Лимиты/квоты/ретраи/идемпотентность реализованы
  • Пагинация/курсор/дельты работают на данных
  • Вебхуки: подписи, повторы, DLQ/Replay проверены
  • Ошибки `problem+json`, `trace_id` прилипает во все логи
  • Дашборды/алерты собраны, OTel включен
  • Нагрузочные/негативные/хаос-тесты пройдены
  • Сверки и отчеты сходятся, runbooks оформлены
  • PRR/канарейка/rollback-план готовы, контакты on-call указаны

Итог

Этот чеклист закрывает технические, операционные и комплаенс-аспекты интеграции API. Пройдите пункты сверху вниз, автоматизируйте проверку лимитов, идемпотентности и вебхуков, включите наблюдаемость и план отката — и ваш запуск пройдет предсказуемо, без «сюрпризов» в продакшне.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Telegram
@Gamble_GC
Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

Нажимая кнопку, вы соглашаетесь на обработку данных.