GH GambleHub

API және жаңарту үйлесімділігі

1) Үйлесімділіктің базалық қағидаттары

Additive-first: ескісін бұзбай, жаңасын қосыңыз (жаңа қосымша өрістер/эндпоинттер, жаңа enum мәндері).
Тұрақты келісімшарттар: «спецификацияда уәде етілгендер жұмыс істейді»; мінез-құлық құжатталған.
Backward> Forward: кері сыйысымдылық артықшылығы; forward tolerant-readers арқылы рұқсат етіледі.
Құжаттар бастапқы: жалғыз шындық көзі - registry (OpenAPI/AsyncAPI/Proto) схемасының нұсқасы.
Айқын эволюция: breaking - тек жаңа major-нұсқасы және көші-қон гиді арқылы.

2) Өзгерістердің таксономиясы

2. 1 үйлесімді (MINOR/PATCH)

Опциондық өрістерді/хедерлерді, жаңа эндпоинттерді, дефолттары бар query-параметрлерді қосу.
Лимиттерді ұлғайту ('page _ size', TTL), кодтарды/семантиканы ауыстырусыз қателерді нақтылау.
Егер клиенттер «бейтаныс» (tolerant-reader) дегенді елемесе, enum мәндерін қосу.

2. 2 Әртүрлі (Behavioral)

Дефолттардың, сұрыптау тәртібінің, жұқа таймауттардың, квоталардың өзгеруі бизнес-логиканы «бұзуы» мүмкін. RFC + анонс пен канареяларды талап етеді.

2. 3 Сынатын (MAJOR)

Өрістерді қайта атау/жою, түрін/пішімін өзгерту, қате кодтарын ауыстыру, келісімшарттардың/аутентификация схемаларының кері үйлеспеушілігі.

3) Нұсқалау саясаты

Стратегия: 'path versioning' ('/v1 ', '/v2').
Минор/патч: «қосу, сындырмау».
Күні көрсетілген тақырыптар (қосымша): 'X-API-Version-Date' жұмсақ біртіндеп өзгерістер үшін.
Медиа түрлері (опц.) : `Accept: application/vnd. acme. v1 + json 'ұсақ түйіршіктеуге арналған.

4) Депрекация және sunset

4. 1 Коммуникациялық тақырыптар


Deprecation: true
Sunset: 2026-03-31T00:00:00Z
Link: </guides/reports-v2>; rel="successor-version"

4. 2 Шығару тәртібі

1. Порталдағы/таратудағы/SDK release notes.
2. Ескерту терезесі 90-180 күн ≥.
3. adoption дашбордындағы мәртебелер.
4. Егер келісілсе, sunset - 410 Gone немесе «read-only» режимінен кейін grace кезеңіне.

5) Көшi-қон және нұсқалардың бiрлесiп қатар өмiр сүруi

Өтпелі кезеңде dual-write/dual-read және есептермен салыстыру.
Адаптерлер (уақытша): ескі payload → жаңа схемалар; адаптердің өмір сүру мерзімі шектеулі.
SDK-көмек: екі нұсқаны қолдайтын релиздер, депрекация ескертулерімен (процеске 1 рет).
Фича-жалаулар: кілттер/тенанттар тізімі бойынша жаңа семантиканы қосу.

6) Backward және forward үйлесімділігі

6. 1 Backward (ескі клиенттер жаңа сервер)

Түрлер пішімін/міндеттілігін өзгертпеңіз.
Жаңа өрістер - тек опциондық.
Қателер - бұрынғы 'error _ code', жаңа кодтарды қосу, алмастыру.

6. 2 Forward (жаңа клиенттер, ескі сервер)

Мүмкіндіктерді (capabilities) 'OPTIONS '/'/versions' арқылы тексеру.
Грейс-мінез-құлық: клиент жоқ фичтерге төзімді болуы тиіс.

7) Келісімшарттар және автоматты тексерулер

Registry: схемалардың нұсқаларын сақтаймыз; PR-дифтар → «breaking/non-breaking» есептері.
Линтер: аттары/түрлері, ұқсастығы, пагинациясы, тұрақты кодтары.
CDC (Consumer-Driven Contracts): жеткізушінің CI-дегі интегратор тестілері (Pact және аналогтар).
Гейт: PR 'major bump '/RFC-сіз breaking кезінде бұғатталады.

І қадам мысалы:
yaml
- name: API Diff run: api-diff --from main --to $PR_SHA --fail-on=breaking --format junit --out diff. xml

8) Канареялық шығарылым және кері жүріс

Canary: 10% → 25% → 50% → 100% трафик; SLO нашарлаған кездегі авто-кері қайту (5xx/latency/429).
Бета-кілттер: allowlist бойынша жаңа нұсқаларға қатынау.
Release freeze: error-budget жанған кезде.
Қабылдау талдауы: трафиктің/клиенттердің жаңа нұсқадағы үлесі, көші-қон уақыты.

9) Детальдардағы үйлесімділік: қателер, пагинация, іспеттілік

9. 1 Қателер

Бар сценарийлердегі HTTP күйін өзгертпеу.
'error _ code' - тұрақты; тек жаңа кодтарды қосу.
'application/problem + json' - бірыңғай пішім.

9. 2 Пагинация

Егер ескі 'offset/limit' қолданылса, cursor/keyset = MINOR дегенге ауысу.
'(updated_at,id)' сұрыптауды және меңзердің тұрақтылығын құжаттаңыз.

9. 3 Idempotency

write үшін - 'Idempotency-Key' + '409 IDEMP_REPLAY' жанжал кезінде.
Көші-қон демпотенттілік семантикасын өзгертпеуі тиіс.

10) Gateway-трансформация (орынды болғанда)

Map v1 → v2 өрістер, қателерді қалыпқа келтіру, күн/ақша форматтарын түрлендіру.
Guardrails: трансформациялар мөлдір және логикалық; breaking жасырмаңыз, бірақ мерзімі шектеулі көпір ретінде пайдаланыңыз.

11) Коммуникациялар және портал

Changelog с датами (`added/changed/deprecated/removed/fixed`).
Нұсқа карточкасы: мәртебесі (beta/GA/deprecated), sunset күні, гайдтарға сілтемелер.
Ескерту веб-хаттары: 'deprecation. notice`, `version. released`, `plan. change`.
SDK release notes + порталдағы баннер.

12) Жетістік өлшемдері

Adoption rate v2 (сұрау/клиенттер бойынша).
Backward-compat incidents («сынық» саны).
Error mix (4xx/5xx/429 үлестері) шығарылғанға дейін/кейін.
Time-to-Adopt медианы.
Support load (тикеттер/апта).
Cost-to-Serve (шақырудың инфрақұрылымдық құны).

13) Үлгілер мен мысалдар

13. 1 Нұсқалар мен депрекациялардың тақырыптары


X-API-Version: v1
Deprecation: true
Sunset: 2026-03-31T00:00:00Z
Link: </v2/reports>; rel="successor-version"

13. 2 Нұсқалар саясаты (YAML фрагменті)

yaml versioning:
strategy: "path"
compatibility:
minor: "additive-only"
patch: "bugfix/perf, no schema change"
deprecation:
min_notice_days: 120 rollout:
canary_steps: [10,25,50,100]
rollback_checks: ["5xx_rate","p95_latency","429_rate","adoption"]

13. 3 OpenAPI: үйлесімді өріс қосу

yaml components:
schemas:
Report:
type: object required: [id, createdAt]
properties:
id: { type: string }
createdAt: { type: string, format: date-time }
cursor: { type: string, description: "optional for v1. 2+" } # additive

14) Шығарылым чек-парағы (MINOR/MAJOR)

MINOR

  • DIFF: non-breaking, жасыл линтер
  • Құжаттама/SDK жаңартылды (мысалдар/кодектер)
  • Канарейка + SLO бойынша авто-кері қайту
  • Комм-жоспар, порталдағы бет
  • Дашборд adoption және қателер

MAJOR

  • RFC/ADR, күн және терезе ≥ 90-180 күн
  • v1 v2 көпір (gateway) және көші-қон гид
  • Dual-write/read және салыстыру
  • SDK екі API + ескерту
  • Негізгі интеграторлары бар ұшқыш

15) Енгізу жоспары (3 итерация)

1. Іргетас (2 апта):

CI-дегі схемаларды, линтті және auto-diff тіркеу; үйлесімділік саясаты; 'Deprecation/Sunset' тақырыптары.

2. Басқарылатын релиздер (3-4 апта):

Канарейка, фича-жалаулар, SLO-алерта; нұсқалар порталы; 2 тармақты қолдайтын SDK релиздері.

3. Автоматтандыру және масштаб (үздіксіз):

CI-дегі тұтынушылардың CDC-тестілері, adoption трендтері бойынша sunset болжамы, автоматты нотификациялар мен ескертулер.

16) Шағын FAQ

Өріс түрін majorсыз өзгертуге бола ма?
Жоқ. Тіпті «жол → сан» - breaking. Жаңа өрісті, ескісін - deprecate енгізіңіз.

Enum: мәндерді қосуға бола ма?
Иә, егер клиенттер толерант-readers болса. Әйтпесе - алдымен құлақтандыру және бета.

Ескі нұсқаны қанша сақтау керек?
Әзірге жаңа ≥ adoption 95% және депрекация терезесі сақталған. Саясатта мерзімді белгілеңіз.

Жиынтығы

API үйлесімділігі - бұл пән: additive-тәсіл, формальды схемалар мен дифтар, канареялық релиздер, анық депрекациялар және басқарылатын көші-қон. Өзгерістер саясатын бекітіңіз, тексерулер мен коммуникацияларды автоматтандырыңыз, adoption өлшеңіз - жаңартуларыңыз клиенттерді бұзуды тоқтатады, ал эволюция жылдамдығы сенімділікті жоғалтпай өседі.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.