GH GambleHub

API we täzelenme laýyklygy

1) Laýyklygyň esasy ýörelgeleri

Additive-first: Köne (täze opsiýa meýdanlary/endpointleri, täze enum-gymmatlyklary) döwmezden täzesini goşuň.
Durnukly şertnamalar: "aýratynlykda wada berlen zat işleýär"; özüni alyp barşy dokumentleşdirildi.
Backward> Forward: tersine gabat gelmek üçin ileri tutulýan ugur; forward tolerant-readers arkaly rugsat berilýär.
Resminamalar başlangyç: Hakykatyň ýeke-täk çeşmesi - registriýadaky shemanyň wersiýasy (OpenAPI/AsyncAPI/Proto).
Aç-açan ewolýusiýa: breaking - diňe täze major wersiýasy we migrasiýa gollanmasy arkaly.

2) Üýtgeşmeleriň taksonomiýasy

2. 1 Gabat gelýär (MINOR/PATCH)

Goşmaça meýdanlary/giderleri, täze endpointleri, defoltly query-parametrleri goşmak.
Çäkleri köpeltmek ('page _ size', TTL), kodlary/semantikany üýtgetmezden ýalňyşlyklary anyklamak.
Müşderiler "nätanyş" (tolerant-reader) manylaryny äsgermezlik etseler, enum bahalaryny goşmak.

2. 2 Düşnüksiz (Behavioral)

Defoltlaryň, sortlamagyň tertibiniň, inçe wagtlaryň, kwotalaryň üýtgemegi - işewürlik logikasyny "bozup" biler. RFC + bildiriş we kanareýa talap edýär.

2. 3 Döwüjiler (MAJOR)

Meýdanlaryň adyny üýtgetmek/aýyrmak, görnüşini/formatyny üýtgetmek, ýalňyşlyk kodlaryny çalyşmak, kontraktlaryň/autentifikasiýa shemalarynyň ters gabat gelmezligi.

3) Wersiýalaşdyrmak syýasaty

Strategiýa: 'path versioning' ('/v1 ', '/v2').
Minor/patch: "goşuň, döwmäň".
Bellenen sözbaşylar (goşmaça): 'X-API-Version-Date' ýuwaş-ýuwaşdan üýtgeşmeler üçin.
Media görnüşleri (ops.) : `Accept: application/vnd. acme. v1 + json 'inçe granulýasiýa üçin.

4) Deprekasiýa we sunset

4. 1 Aragatnaşyk sözbaşylary


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

4. 2 Çykarmagyň tertibi

1. Portalda/poçta sanawynda bildiriş/SDK release notes.
2. Duýduryş penjiresi ≥ 90-180 gün.
3. Dashborddaky statuslar adoption.
4. Sunset - 410 Gone ýa-da "read-only" düzgüninden soň, eger ylalaşylan bolsa, grace döwri üçin.

5) Wersiýalaryň göçmegi we bilelikde ýaşamagy

Geçiş döwründe dual-write/dual-okamak we hasabatlary barlamak.
Adapterler (wagtlaýyn): köne payload → täze shemalar gateway-öwrümleri; adapteriň ömri çäklidir.
SDK-kömek: iki wersiýany hem goldaýan çykarmalar, deprekasiýa duýduryşlary bilen (her proses üçin 1 gezek).
Ficha-baýdaklar: açarlaryň/tenantlaryň sanawy boýunça täze semantikany goşmak.

6) Backward we forward gabat gelmek

6. 1 Backward (köne müşderiler täze serwer)

Görnüşleriň/borçlylygyň formatlaryny üýtgetmäň.
Täze meýdanlar diňe goşmaça.
Hatalar - öňki 'error _ code', täze kodlary goşmak, çalyşmak.

6. 2 Forward (täze müşderiler köne serwer)

'OPTIONS '/'/versions' arkaly (capabilities) mümkinçiliklerini barlamak.
Greýs-özüni alyp barşy: Müşderi ýok bolan aýratynlyklara çydamly bolmalydyr.

7) Şertnamalar we awtomatiki barlaglar

Registry: shemalaryň wersiýalaryny saklaýarys; PR-difler → "breaking/non-breaking" hasabatlary.
Linter: atlar/görnüşler, idempotentlik, paginasiýa, durnukly kodlar.
CDC (Consumer-Driven Contracts): CI üpjün edijisine integrator synaglary (Pact we analoglar).
Gate: PR 'major bump '/RFC-siz döwülende petiklenýär.

CI ädiminiň mysaly:
yaml
- name: API Diff run: api-diff --from main --to $PR_SHA --fail-on=breaking --format junit --out diff. xml

8) Kanareýanyň goýberilmegi we yzyna gaýdyp gelmek

Canary: 10% → 25% → 50% → 100% traffik; SLO ýaramazlaşanda awto-yza gaýdyp gelmek (5xx/latency/429).
Beta açarlary: allowlist boýunça täze wersiýalara girmek.
Release freeze: error-budget ýakylanda.
Kabul etmegiň seljermesi: traffigiň/müşderileriň täze wersiýadaky paýy, migrasiýa wagty.

9) Jikme-jikliklerde gabat gelmek: ýalňyşlyklar, paginasiýa, idempotentlik

9. 1 Ýalňyşlyklar

Bar bolan skriptlerde HTTP statuslaryny üýtgetmäň.
'error _ code' - durnukly; Diňe täze kodlary goşuň.
'application/problem + json' - ýeke-täk format.

9. 2 Paginasiýa

Köne 'offset/limit' bar bolsa, cursor/keyset = MINOR geçiň.
"(updated_at,id)" sortuny we kursoryň durnuklylygyny resminamalaşdyryň.

9. 3 Idempotency

Write üçin - 'Idempotency-Key' + '409 IDEMP_REPLAY' gapma-garşylykda.
Migrasiýa dempotentligiň semantikasyny üýtgetmeli däldir.

10) Gateway-transformasiýa (ýerlikli bolanda)

Map v1 → v2 meýdanlary, ýalňyşlyklary kadalaşdyrmak, seneler/pul formatlaryny öwürmek.
Guardrails: üýtgeşmeler aç-açan we logistik; breaking däl-de, çäklendirilen köpri hökmünde ulanyň.

11) Aragatnaşyk we portal

Changelog с датами (`added/changed/deprecated/removed/fixed`).
Wersiýa kartoçkasy: status (beta/GA/deprecated), senesi sunset, gidlere salgylanmalar.
Bildiriş webhuklary: 'deprecation. notice`, `version. released`, `plan. change`.
SDK release notes + portalda banner.

12) Üstünligiň metrikleri

Adoption rate v2 (/müşderiler üçin).
Backward-compat incidents.
Error mix (paýlar 4xx/5xx/429) çykarylmazdan öň/soň.
Time-to-Adopt mediana.
Support load (bilet/hepde).
Cost-to-Serve (çagyryş üçin infrastruktura bahasy).

13) Şablonlar we mysallar

13. 1 Wersiýalaryň we deprekasiýalaryň sözbaşylary


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

13. 2 Wersiýa syýasaty (YAML bölegi)

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: gabat gelýän meýdan goşmak

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) Goýbermegiň çek-sanawy (MINOR/MAJOR)

MINOR

  • DIFF: breaking däl, ýaşyl linter
  • Resminamalar/SDK täzelendi (mysallar/kodekler)
  • Kanareýa + SLO boýunça awto-yza gaýdyp gelmek
  • Komm-plan, portaldaky sahypa
  • Adoption we ýalňyşlyklar

MAJOR

  • RFC/ADR, gün we penjire ≥ 90-180 gün
  • v1 v2 köpri (gateway) we migrasiýa gollanmasy
  • Dual-write/read and contractions
  • Iki API + duýduryş bilen SDK
  • Esasy integratorly pilot

15) Durmuşa geçirmek meýilnamasy (3 iterasiýa)

1. Binýady (2 hepde):

CI-de shemalary, lintleri we auto-diff hasaba almak; gabat gelmek syýasaty; 'Deprecation/Sunset' sözbaşylary.

2. Dolandyrylýan goýberişler (3-4 hepde):

Kanareýkalar, baýdaklar, SLO-alertler; wersiýalaryň portaly; 2 şahany goldaýan SDK neşirleri.

3. Awtomatlaşdyryş we masştab (üznüksiz):

CI-de sarp edijileriň CDC synaglary, adoption tendensiýalary boýunça sunset çaklamasy, awtomatiki bellikler we ýatlatmalar.

16) Mini-FAQ

Meýdanyň görnüşini major bolmasa üýtgedip bolarmy?
Ýok. Hatda "hat → san" - breaking. Täze meýdany giriň, köne - deprecate.

Enum: manylary goşmak mümkinmi?
Hawa, eger müşderiler tolerant-readers bolsa. Otherwiseogsam, ilki duýduryş we beta.

Köne wersiýany näçe wagt saklamak?
Şu wagta çenli täze adoption 95% ≥ we deprekasiýa penjiresi saklandy. Syýasatda möhleti belläň.

Jemi

API laýyklygy - bu düzgün-nyzam: additive-çemeleşme, resmi shemalar we diflar, kanar relizleri, aç-açan deprekasiýa we dolandyrylýan migrasiýa. Üýtgeşmeler syýasatyny düzüň, barlaglary we aragatnaşyklary awtomatlaşdyryň, adoption ölçäň - täzelenmeleriňiz müşderileri bozmagy bes eder we ewolýusiýa tizligi ygtybarlylygy ýitirmezden öser.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Telegram
@Gamble_GC
Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.