WinUpGo
Ҷустуҷӯ
CASWINO
SKYSLOTS
BRAMA
TETHERPAY
777 FREE SPINS + 300%
Казино Cryptocurrency Казино Crypto Torrent Gear ҷустуҷӯи ҷӯйборҳои мақсадноки шумост! Torrent фишанги

Панҷ хатои муҳими ҳамгироии API ҳангоми оғозёбӣ

Хатои № 1. Не idempotence ва "тӯфони" ақибнишинӣ

Аломатҳо: фармоишҳо/пардохтҳои такрорӣ, номутобиқатӣ дар миқдор, бозгашти баҳснок, огоҳиҳои DLQ меафзоянд.

Реша: таҳвили такрории дархостҳо/webhooks ва flappies шабака муқаррарӣ аст. Агар амалиёти "эҷод/хориҷ кардан" номувофиқ бошад, бозсозӣ зарарро зиёд мекунад.

Чӣ тавр

Idempotency-Key/' operation _ id 'ба ҳама усулҳои хатарнок (POST/PATCH).

Индекси беназир дар пойгоҳи додаҳо барои 'operation _ id'. Бозсозӣ - натиҷаи қаблиро баргардонед.

Webhooks тавассути ҷадвали паёмдони (dedupe by 'event _ id + signature'). Чорабиниҳои берунӣ - Outbox.

Retrai: ҳадди аксар 1-2 маротиба, экспонент + ҷиттер, танҳо барои амалиёти бехатар.

Конвенсияи HTTP (мисол):
http
POST/v1/пардохтҳо
Калиди Idempotency: ik_f35a2
Намуди мундариҷа: барнома/json

{"маблағ": 5000, "асъор": "EUR", "манбаъ": "card_..."}
Муҳофизати SQL (соддакардашуда):
sql
Пардохтҳои ALTER TABLE ADD CONSTRAINT uniq_op UNIAL (operation_id);)
Retrai бо jitter (псевдокод):
python барои i дар диапазон (2):
кӯшиш кунед: баргардонидани call_api (сарборӣ, вақти корӣ = 0. 6)
Ғайр аз мӯҳлат:
хоб (0. 05 2i + тасодуфӣ. либоси ягона (0, 0. 05))
баланд бардоштани Upstream дастнорас
Рӯйхати назоратӣ:
  • Ҳама "мантиқи пулӣ/эҷодӣ" дорои шохиси амалиёт _ id 'ва uniq мебошад.
  • Веб-китобҳои воридотӣ танҳо тавассути паёмдони бо коргари idempotent.
  • Муштарӣ SDK ба таври худкор Idempotency-Key -ро танзим мекунад.

Хатои рақами 2. Вақтсанҷӣ/бозсозӣ ва SLO: Гармии аз ҳад зиёд

Аломатҳо: p95 ногаҳон шино мекунад, навбатҳо меафзоянд, печутоби ноҳиявӣ "таркиш".

Реша: Ҷамъи SLO-и посух 400-600 мс ва танаффус ба API-ҳои беруна 1-2 с мебошанд ва ҳатто 3-ро бозмедоранд. Шумо аз ҳадди имкон зиёдтар кор мекунед ва шумо бо такрори нашъамандӣ дучор мешавед.

Чӣ тавр

Вақти буҷа: агар SLO 400 мс бошад, мӯҳлати болооб: 250-300 мс; Мӯҳлати умумии дархости ≤ SLO.

Маҳдудиятҳо/ақибмонӣ: семафорҳо/ҳавзи коргарон барои зангҳо ба ҳар як вобастагӣ. Дар як вақт серодам § 429/503.

Қатъи гардиш: 'кушода' бо танаффус/5xx, 'нисфи кушода'.

Назорати дохилшавӣ: мувофиқати маҳдудро (барои як ришта, дар нуқтаи ниҳоӣ/PSP) маҳдуд кунед.

Намуна (Гузаштан):
go sem: = make (chan struct {}, 64 )//маҳдудияти рақобат ба PSP func call .PSP (контексти ctx). Контекст, req Req) (Res, хато) {
интихоби {
парвандаи sem <- struct {} {}:
defer func () {<-sem} ()
в, бекор кунед: = контекст. Бо Timeout (ctx, 300 вақт). Миллисекунд)
defer бекоркунӣ ()
бозгашт psp. Иҷро кунед (c, req)
пешфарз:
ба ҷои навбати беохир, Res {} -ро баргардонед, нокомии фаврӣ//фаврӣ
}
}
Рӯйхати назоратӣ:
  • Вақт аз SLO кӯтоҳтар аст; retrai ≤ 2; ҷиттер ҳаст.
  • Ҳавзҳо/семафорҳо ба API-ҳои беруна; шикастани ноҳиявӣ бо ченакҳо.
  • Дар хатсайрҳои банд мо 429/Retry-After бармегардем, пайвастшавиро давом намедиҳем.

Хатои рақами 3. Амнияти заиф: Имзоҳои Webhook, Асрори, TLS

Аломатҳо: веб-китобҳои "одамони дигар" мегузаранд, асрори код/журнал, хатари MITM.

Реша: санҷиши имзо/тару тоза нест, асрори файлҳои env, TLS-и кӯҳна ва сарлавҳаҳои суст зиндагӣ мекунанд.

Чӣ тавр

Имзои webhooks HMAC-SHA256 + 'X-Timestamp' (тиреза ≤ 5-10 дақиқа), муқоисаи қатъии имзо.

MTLS барои ҳамгироии интиқодӣ ё IP-рӯйхати иҷозат.

Гардиши асрҳо тавассути Vault/Cloud KMS; ҳуқуқҳои ҳадди аққал; аудити тарҳ.

TLS 1. 2/1. 3 танҳо, HSTS, CORS дуруст (рӯйхати манбаъҳои танг).

Санҷиши имзо (Python):
санҷиши python def (sig_hdr, ts_hdr, бадан, махфӣ):
агар abs (вақт. вақт () - int (ts_hdr))> 600: баланд бардоштани мӯҳлати истифода ()
calc = hmac. нав (махфӣ, (ts_hdr +. "" + бадан). рамз (), ҳашлиб. ша256). hexdigest ()
агар хмак набошад. compare_digest (calc, sig_hdr): баланд бардоштани Бад Сиг ()
Рӯйхати назоратӣ:
  • Ҳамаи webhooks имзо ва тасдиқ карда мешаванд; равзанаи тару тоза маҳдуд аст.
  • Асрҳо дар KMS/Vault, гардиш ва аудит мавҷуданд.
  • TLS/HSTS фаъол аст; Нуқтаи CORS; Агар мувофиқ бошад, IP/MTLS.

Хатои рақами 4. Кашиши шартнома: нақшаи "зиндагии худро" гузаронд

Аломатҳо: prod "танҳо дар баъзе мизоҷон афтод", 500/422 дар гузоришҳо, версияҳои гуногуни SDK ва API баҳс мекунанд.

Реша: тавсифи қатъии шартномаҳо, тағироти номувофиқ ба қафо, майдонҳои "ором", маъноҳои гуногун барои ҳамон номҳо вуҷуд надоранд.

Чӣ тавр

Шартнома-аввал: Open барои чорабиниҳо - Феҳристи Avro/Protobuf + Schema.

Версия: 'v1 → v2' (URI/сарлавҳа), нақшаи дуршавӣ, давраи файз.

Қафо-компат: танҳо тағироти иловагӣ дар варақаҳои хурд; бе v-bump нест карда намешавад/тағир дода намешавад.

Санҷишҳои шартномавӣ: Pact/Buf - провайдер/супер дар CI санҷида мешаванд.

Намунаҳо:
ямл
Кушодани API: намуди равшани маблағ дар воҳидҳои amount_minor хурд:
намуд: ҳадди ақали адад: 0 тавсиф: Ҷамъи воҳидҳои ҳадди ақали асъор (адад)
Рӯйхати назоратӣ:
  • Шартномаҳо дар git нигоҳ дошта мешаванд, CI агар номувофиқ бошад, тасдиқ/танаффус мекунад.
  • Схема барои рӯйдодҳо, мутобиқати "бозгашт/ба пеш" сабт мекунад.
  • Саҳифаи docking тағирот, санаи ихроҷ, курсии санҷишӣ барои шарикон.

Хатои рақами 5. Оғози "нобино": ченакҳо/гузоришҳо/роҳҳо ва қуттиҳо нестанд

Аломатҳо: "ҳеҷ чиз намоён нест", дастгирӣ пур мешавад, debag - дастҳо дар prod.

Реша: мушоҳида дохил карда нашуд, синтетика вуҷуд надорад, қуттича "бо калимаҳо" озмуда шудааст.

Чӣ тавр

Нишондиҳандаҳои RED/USE: суръат/хатогӣ/таъхир дар ҳар як нуқта, бо масир/усул.

Таносуб: 'пайгирӣ _ ид' дар ҳама гузоришҳо ва ҷавобҳо; бастаи zapros↔vebkhuk.

Синтетика: санҷишҳои саломатӣ (қум вуруд/амонат), назорати SLA T + 60 барои вебхукҳо.

Sandbox/марҳила: калидҳо/доменҳои комилан ҷудошуда, PSP-ҳои афсонавӣ, вурудот "ба гузоришҳо дохил карда нашудаанд".

Ҷавоб бо ID пайгирӣ:
http
HTTP/1. 1 202 Қабул карда шуд
Trace-Id: 7f2b3d8e9c1a4
Ҷойгиршавӣ :/ v1/ops/req_42/status
Рӯйхати назоратӣ:
  • Нишондиҳандаҳои RED/USE, панели панелҳо, огоҳиҳо (аломатҳо + сабабҳо).
  • Роҳҳои ниҳоӣ; Гузоришҳои JSON, ҳеҷ PII, бо 'trace _ id'.
  • Синтетика аз минтақаҳои калидӣ; қуттии регзор лозим аст, калидҳои гуногун.

Нақшаи Prelaunch (T-7 → T-0)

T-7 рӯзҳо:
  • Санҷиши ниҳоии шартнома: ягон тағироти номувофиқ мавҷуданд; схемаҳоро ях кунед.
  • Асрҳо/Шаҳодатномаҳо: ротатсияи санҷиш, дастрасӣ, сиёсати KMS.
  • Синтетикаи 24 × 7, огоҳиҳо бо занг баста мешаванд.
T-3 рӯз:
  • Боркунии мини-давидан (2-5 дақиқа тӯл мекашад): p95/ҳавзҳо/навбатҳо дар минтақаи сабз.
  • Webhooks DRY-RUN (такрорӣ, 5xx, jitter), санҷиши DLQ.
  • "Китоби телефонӣ" -и шарикон: тамосҳои L1/L2, канали ҳуҷраи ҷанг.
T-0:
  • Трафики канал барои дарвозаҳои SLO 5% → 25% → 50%; бозгашти тайёр.
  • Kill-switch/feature-парчамҳо дар хусусиятҳои хатарнок дохил карда мешаванд.
  • Хонаи ҷанг фаъол аст, қолабҳои вазъ омода карда мешаванд.

Нақшаи бозгашт (агар ягон хатогӣ рӯй дода бошад)

1. Озод кардани трафик ба версияи/масири қаблии устувор.

2. Тағироти баҳсноки phicheflagро хомӯш кунед.

3. Навбат/ҳавзҳоро мӯътадил кунед, дар тӯфон ақибнишиниро қатъ кунед.

4. Ҳодисаи пас аз ҳодиса: ҷамъоварии ҷадвал, решаҳо, вазифаҳо (ислоҳи пешакӣ/шартномавӣ).


Оғози ҷадвали худсанҷӣ (кӯтоҳ)

БлокиСаволБале, не
IdempotenceОё ҳама усулҳои "эҷод" дорои Idempotency-Key/' operation _ id 'ва шохиси uniq мебошанд?
Бозсозӣ/танаффусВақтсанҷҳо аз SLO кӯтоҳтаранд; retrai ≤ 2; jitter оид ба?
БехатарӣWebhooks имзо шудааст, равзанаи тару тоза ≤ 10 дақиқа, асрори KMS?
ШартномаҳоOpEN API/Async-API собит шудааст, CI номувофиқатиро ба даст меорад?
МушоҳидакорӣRED/USE, роҳҳо, T + 60 синтетикӣ, қуттии регзор ҷудо карда шудаанд?
БозгаштОё тугмаи бозгаштан/куштан, нақшаи иртибот вуҷуд дорад?

Аксар вақт мепурсиданд, ки "чӣ мешавад"...

... оё провайдер Idempotency-Key-ро дастгирӣ намекунад?

'Hash (бадан)' + 'partner _ request _ id' -ро нигоҳ доред ва номутобиқатии худро ворид кунед.

... webhooks баъзан ҷавоби "пеш" меоянд?

Дар ҳолати 'operation _ id' дӯхтан ва муваққатан нигоҳ доштани "номаълум → оштӣ кардан"; мусолиҳаи даврӣ ихтилофотро қатъ мекунад.

... бояд муштариёни кӯҳна ва навро дастгирӣ кунад?

Нуқтаи ниҳоӣ ('/v1 'ва '/v2'), масир бо сарлавҳа/URI, ҳадди аққал N моҳро ба қафо нигоҳ доред.


Хулосаи дубора

Нокомии интегратсия қариб ҳамеша як чиз аст: бе номутобиқатӣ, танаффуси нодуруст ва ақибнишинӣ, имзои заифи вебхукҳо, кашиши шартнома ва набудани намоён. Шартномаҳоро пешакӣ ислоҳ кунед, мушоҳидаҳоро фароҳам оваред, маҳдудиятҳо/рэкпрессерро ҷойгир кунед, ҳама амалҳои берунаро имзо кунед ва синтетикаро идора кунед. Сипас, ҳатто дар сурати нокомии шарикон, раҳоии шумо идорашаванда боқӣ хоҳад монд - бидуни пул дар бозгашт ва бидуни шаби бехобӣ барои тамоми даста.

× Ҷустуҷӯ аз рӯи бозиҳо
Барои оғоз кардани ҷустуҷӯ, ҳадди аққал 3 аломат ворид кунед.