GH GambleHub

API жана жаңыртуу шайкештиги

1) Негизги шайкештик принциптери

Additive-first: эски (жаңы кошумча талаалар/endpoints, жаңы enum-баалуулуктар) сындырбай, жаңы кошуу.
Туруктуу контракттар: "спецификацияда эмне убада кылынса, ал иштейт"; жүрүм-туруму документтештирилген.
Backward> Forward: артка шайкештик артыкчылыгы; forward толерант-readers аркылуу жол берилет.
Документтер биринчилик болуп саналат: чындыктын бирден-бир булагы - реестрдеги схеманын версиясы (OpenAPI/AsyncAPI/Proto).
Ачык эволюция: breaking - жаңы негизги версия жана миграциялык гид аркылуу гана.

2) Өзгөрүүлөрдүн таксономиясы

2. 1 шайкеш (MINOR/PATCH)

Кошумча талааларды/хедерлерди, жаңы пункттарды, дефолттор менен query-параметрлерди кошуу.
Лимиттерди көбөйтүү ('page _ size', TTL), коддорду/семантиканы өзгөртпөстөн каталарды тактоо.
Эгерде кардарлар "бейтааныш" (толерант-reader) эске албаса, enum маанилерин кошуу.

2. 2 түшүнүксүз (Behavioral)

Дефолтторду, сорттоо тартибин, жука таймауттарды, квоталарды өзгөртүү - бизнес-логиканы "бузушу" мүмкүн. RFC + жарыялоо жана канарейка талап кылат.

2. 3 сындыруучу (MAJOR)

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

3) чыгаруу саясаты

Стратегия: 'path versioning' ('/v1 ', '/v2').
Minor/патч: "кошуу, сындырып жок".
Date аталыштары (кошумча): '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) Миграция жана чогуу жашоо версиялары

өткөөл мезгил ичинде Dual-write/dual-окуу жана отчетторду салыштыруу.
Adapters (убактылуу): эски payload → жаңы схемалар gateway-өзгөртүү; адаптеринин өмүрү чектелген.
SDK-жардам: депрекация эскертүүлөрү менен эки версияны тең колдогон релиздер (процесске 1 жолу).
Фича-желектер: ачкычтар/тенанттар тизмеси боюнча жаңы семантиканы киргизүү.

6) Backward жана Forward шайкештик

6. 1 Backward (эски кардарлар жаңы сервер)

Түрлөрдүн форматтарын/милдеттүүлүгүн өзгөртпөө.
Жаңы талаалар - гана кошумча.
Каталар - мурунку 'error _ code', жаңы коддорду кошуу, алмаштырбоо.

6. 2 Forward (жаңы кардарлар эски Server)

'OPTIONS '/'/versions' аркылуу мүмкүнчүлүктөрдү (capabilities) текшерүү.
Грейс-жүрүм-туруму: кардар жок phichs чыдамкай болушу керек.

7) Келишимдер жана автоматтык текшерүү

Registry: схемалар нускасын сактоо; PR-дифтар → отчеттор "breaking/non-breaking".
Линтер: аттары/түрлөрү, боштук, pagination, туруктуу коддору.
CDC (Consumer-Driven Contracts): CI берүүчүгө интегратор тесттер (Pact жана аналогдор).
Gate: PR 'major bump '/RFC жок breaking учурунда бөгөттөлгөн.

CI-кадам мисал:
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) начарлашы менен auto-артка.
Бета-ачкычтар: allowlist боюнча жаңы версияларга жетүү.
Release freeze: error-budget күйүп жатканда.
Кабыл алуу аналитикасы: трафиктин/кардарлардын жаңы версиядагы үлүшү, миграция убактысы.

9) майда-чүйдөсүнө чейин шайкештиги: ката, pagination, idempotentity

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`).
Version Card: статусу (beta/GA/deprecated), датасы sunset, Гайд шилтемелер.
эскертүүлөр Webhuke: '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: эмес breaking, жашыл Линтер
  • Документтер/SDK жаңыртылган (мисалдар/codec)
  • Канарейка + SLO боюнча auto-rebound
  • Комм-план, порталдагы бет
  • Dashbord adoption жана каталар

MAJOR

  • RFC/ADR, күн жана терезе ≥ 90-180 күн
  • v1 v2 көпүрө (gateway) жана миграциялык жол
  • Dual-write/окуу жана текшерүү
  • эки API + эскертүү менен SDK
  • Негизги интеграторлор менен учкуч

15) Ишке ашыруу планы (3 итерация)

1. пайдубалы (2 жума):

CI схемалар, линт жана auto-diff каттоо; шайкештик саясаты; 'Deprecation/Sunset' аталыштары.

2. Башкарылуучу релиздер (3-4 жума):

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

3. Автоматташтыруу жана масштаб (үзгүлтүксүз):

CDC-CI керектөөчүлөрдүн сыноолору, adoption тенденциялары боюнча sunset болжолу, автоматтык эскертүүлөр жана эскертүүлөр.

16) Mini-FAQ

Мен негизги жок талаа түрүн өзгөртүүгө болобу?
Жок. Жада калса "сап → сан" - breaking. жаңы талааны киргизүү, эски - deprecate.

Enum: маанилерди кошууга болобу?
Ооба, эгерде кардарлар - толерант-readers. Болбосо - биринчи эскертүү жана бета.

эски нускасын сактоо үчүн канча?
жаңы ≥ adoption чейин 95% жана депрекация терезе сакталып турат. Саясатта мөөнөттү белгилеңиз.

Жыйынтык

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

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.