Logo GH

API և նորարարության համատեղելիությունը

1) Հիմնական սկզբունքները

Diitive-first: ավելացրեք նոր, առանց կոտրելու հինը (նոր oporative դաշտեր/endpoints, նոր enum-արժեքներ)։

Կայուն պայմանագրեր. <<Ինչ է խոստացված ճշգրտման մեջ և աշխատում>>։ վարքագիծը փաստագրված է։

Backward> Forward 'հետադարձ փոխանցման գերակայություն; forward-ը պատրաստված է toler.ru-readers-ի միջոցով։

Փաստաթղթերը առաջնային են 'ճշմարտության միակ աղբյուրը registry (OpenAPI/AsyncAPI/Delo) սխեմայի տարբերակն է։

Ակնհայտ էվոլյուցիա 'breaking-ը միայն նոր major-տարբերակի և միգրացիոն ուղեցույցի միջոցով է։

2) Փոփոխությունների տաքսոնոմիա

2. 1 Համատեղելի (MINOR/PATCH)

Սպիտակուցային դաշտերի ավելացումը/հեդերը, նոր էնդպոինտները, query-express-ը դեֆոլտներով։

Լիմիտների ավելացումը («page _ size», TTL), սխալների հստակեցումը առանց պարամետրերի/սեմանտիկայի փոփոխության։

Էնումի արժեքների ավելացումը, եթե հաճախորդները անտեսում են «անծանոթ» (toler.ru-reader)։

2. 2 Երկիմաստ (Behavioral)

Դեֆոլտների փոփոխությունը, տեսակավորման կարգը, բարակ թայմաուտները, քվոտը կարող է «կոտրել» բիզնես տրամաբանությունը։ Պահանջում է RFC + անոնսը և կանարեկները։

2. 3 Կոտրող (MAJOR)

Դաշտերի վերանվանումը/հեռացումը, տեսակը/ձևաչափը, այլընտրանքային սխալների փոխարինումը, հակառակ անհամատեղելիությունը/սխեմաները։

3) Տարբերակման քաղաքականությունը

Ռազմավարություն '«path versioning» («/v1 », «/v2»)։

Minor/patch: «ավելացրեք, մի կոտրիր»։

Թվագրված վերնագրերը (դոպը) '«X-API-Version-Date» փափուկ աստիճանական փոփոխությունների համար։

Մեդիա տեսակներ (opz.) : `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. Հայտարարությունը պորտալում/հաղորդագրությունում/MSK rele.notes-ում։

2. Նախազգուշացման պատուհանը 90-180 օր է։

3. Dashborde adoption-ի կարգավիճակները։

4. Sunset-ից հետո 410 Gone-ը կամ «read-only» ռեժիմը grace ժամանակահատվածի համար, եթե համաձայնված է։

5) Մոսկվան և տարբերակների համատեղ գոյությունը

Dance-write/dult-read անցումային ժամանակահատվածում և զեկույցներով։

Ադապտերները (ժամանակավոր) 'հին payload-ի gateway-վերափոխումները նոր սխեմաներ են։ հարմարվողի կյանքի տևողությունը սահմանափակ է։

MSK օգնություն ՝ երկու տարբերակները աջակցող օրինագծեր, ավանդի նախազգուշացումներով (1 անգամ ընթացքի համար)։

Ֆիչա դրոշը 'նոր սեմանտիկայի իրականացումը 2019/տենանտների ցուցակով։

6) Backward և forward համատեղելիությունը

6. 1 Backward (հին հաճախորդները նոր սերվերն են)

Մի փոխեք տեսակների/պարտավորության պարամետրերը։

Նոր դաշտերը միայն օբյեկտիվ են։

Սխալները նախկին «error _ code» են, նոր ստանդարտ ավելացրեք, չփոխեք։

6. 2 Forward (նոր հաճախորդները հին սերվերն են)

Ստուգել հնարավորությունների առկայությունը (capabilities) «OPTIONS '//versions» միջոցով։

Գրեյս վարքագիծը 'հաճախորդը պետք է հանդուրժի բացակայող ավարտներին։

7) Պայմանագրեր և ավտոմատ ստուգումներ

Registry: Մենք ենք սխեմաների տարբերակները։ PR-դիֆերը բացատրում են «breaking/non-breaking» զեկույցները։

Լինթեր ՝ անուններ/տեսակներ, կուռքեր, պագինացիա, կայուն բջիջներ։

CDC (Consumer-Driven Corracom) 'CI-ում ինտեգրատորների թեստեր (Pact և անալոգներ)։

Գեյթ 'PR-ն արգելափակված է breaking-ով առանց' major bump '/RTS-ի։

CI-2019 օրինակ

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 տոկոսը 3,100 տոկոսն է։ SLO-ի վատացման ժամանակ (5xx/latency/429)։

Բետա-բանալիներ 'allowlist-ի նոր տարբերակների հասանելիությունը։

Release freeze 'error-budget այրման ժամանակ։

Ընդունման վերլուծությունը 'հաճախորդների մասնաբաժինը նոր տարբերակով, հաճախորդի ժամանակը։

9) Մանրամասների համատեղելիությունը 'սխալներ, պագինացիաներ, գաղափարախոսություն

9. 1 Սխալներ

Չփոխեք HTTP ստատուսները գոյություն ունեցող սցենարներում։

«error _ code» կայուն; նոր պլանավորվում է միայն ավելացնել։

«Apple/problem + json» -ը միասնական ձևաչափ է։

9. 2 Պագինացիա

Անցումը cursor/keyset = MINOR-ին, եթե աջակցվում է հին 'set/limit "։

Փաստաթղթավորեք տեսակավորումը «(wwww.ated _ at, id)» և ռուսական կուրսորը։

9. 3 Idempotency

Write-ի համար '"Idempotency-Key '+" 49IDEMP _ REPLAY "հակամարտության ժամանակ։

Մոսկվան չպետք է փոխի կուռքերի իմաստը։

10) Gateway-տրանսֆորմացիան (երբ տեղին է)

Map v1-v2 դաշտեր, նորմալացնել սխալները, փոխակերպել www.dat/փողի։

Guardrails: Փոխակերպումները թափանցիկ են և տրամաբանվում են։ մի թաքցրեք breaking, այլ օգտագործեք որպես կամուրջ սահմանափակ ժամանակով։

11) Հաղորդակցություն և պորտալ

Changelog с датами (`added/changed/deprecated/removed/fixed`).

Տարբերակի քարտը 'կարգավիճակ (beta/GA/deprecated), sunset ամսաթիվը, հղումները։

Վեբհուկի ծանուցումները '"deprecation։ notice`, `version. released`, `plan. change`.

MSK rele.notes + դրոշը պորտալում։

12) Հաջողության մետրերը

Adoption rate v2 (խնդրանքով/հաճախորդներին)։

Backward-compat incidents (col-w-vo «կոտրվածք»)։

Error mix (4xx/5xx/429) մինչև/հետո։

Time-to-Adopt-ը միջին է։

Supronload (թիկետներ/105)։

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, linter կանաչ
  • Express/MSK նորարարված (օրինակներ/օրինակներ)
  • Կանարեյկա + SLO-ում
  • Կոմմ պլան, էջ պորտալում
  • Dashbords adoption և սխալներ

MAJOR

RFC/ADR, sunset ամսաթիվը և պատուհանը 90-180 օր։

  • v1-v2 կամուրջ (gateway) և միգրացիոն ուղեցույց
  • Dance-write/read և ծալքեր
  • DRK երկու API + նախազգուշացումով
  • Օդաչուն հիմնական ինտեգրատորներով

15) Իրականացման պլանը (3 իտացիա)

1. Հիմքը (երկու շաբաթ)

Registry սխեմաները, ոսպնյակը և www.diff CI-ում; քաղաքականությունը։ վերնագրեր «Deprecation/Sunset»։

2. Կառավարվող ուլտրաձայնները (3-4 շաբաթ)

Կանարեյկի, ֆիչի դրոշները, SLO-ալերտները։ տարբերակների պորտալը; MSK-ենթախմբերը երկու ճյուղերի աջակցությամբ։

3. Ավտոմատիզացիան և մասշտաբը (անընդհատ)

CI սպառողների թեստեր, sunset կանխատեսում adoption, ավտոմատ նոտացիա և հիշեցումներ։

16) Mini-FAQ

Կարո՞ ղ եք փոխել դաշտային տեսակը առանց major

Ոչ։ Նույնիսկ «տողը նշված թիվ» - breaking։ Մուտքագրեք նոր դաշտ, հինը 'deprecate։

Էնում 'կարո՞ ղ եք ավելացնել արժեքները։

Այո, եթե հաճախորդները toler.ru-readers են։ Հակառակ դեպքում, նախ տեղեկացումը և բետա։

Որքա՞ ն պետք է պահել հին տարբերակը։

Մինչ adoption նոր 3695 տոկոսն է և պահպանվում է տեղավորման պատուհանը։ Գրանցեք ժամանակը քաղաքականության մեջ։

Արդյունքը

API-ի համատեղելիությունը կարգապահությունն է 'diitive-մոտեցում, ֆորմալ սխեմաներ և դիֆեր, կանարեկուլներ, պարզ դեպրեսիաներ և կառավարվող ձեռնարկություններ։ Ամրագրեք փոփոխության քաղաքականությունը, ավտոմատիզացրեք ստուգումները և հաղորդակցությունները, ստուգեք adoption, և ձեր նորարարությունները կդադարեն կոտրել հաճախորդներին, իսկ էվոլյուցիայի արագությունը կաճի առանց հուսալիության։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։