Cheklist wwww.API
0) Արագ ակնարկ (ով է անում)
- Ձեռնարկության սեփականատերը նշանակված է
- Կոնտակտներ on-call (24 247/ստրուկ։ ժամացույց) գրված է
- Համաձայնեցված SLO/SLA և առյուծների աջակցության պատուհանը
- Station-էջ և հեռուստաալիքը (email/Slack/Webhook)
1) Հասանելի, միջավայրեր, տարբերակներ
- Մուտք դեպի sandbox/staging/production
- API տարբերակը ապացուցված է </վերնագիրը 'X-API-Version>>
- Allowlist IP և ցանցային կանոնները կարգավորված են
- Ժամացույց և TZ: Բոլոր ժամանակները UTC, NTP համաժամացում
- Ստուգված է SNK/հաճախորդների համատեղելիությունը SemVer-ով և տարբերակների մատրիցով։
2) Վավերացում և հոսանքներ
- Մեխանիզմը համաձայնեցված է 'OAuth2 Client Credentials/Auth Code + PKCE/API Key/mTLS/mTLS/mTRS/
- Peter Token-ի կյանքի ժամկետը և Refresh Token-ի լուծարումը վճռական են
- API Key 'գաղտնիքը ցույց է տալիս մեկ անգամ, պահվում է գաղտնիքների կառավարման մեջ։
- JWKS/JTI/« kid »-ը ստուգվում է, ներառում է clock skew 245 րոպե։
- «Authorization» վերնագրերը չեն տրամաբանվում (խմբագրություն)
Ստուգողական մարտահրավեր
bash curl -sS -H "Authorization: Bearer $TOKEN" https://api. example. com/v1/ping
3) Անվտանգությունն ու գաղտնիությունը
- TLS 1. 2 +/HSTS, oporational mTSA
- PII նվազագույնի. Մենք ուղարկում ենք միայն անհրաժեշտ, դիմակներ լոգարաններում
- Պահեստային և պահեստային քաղաքականությունը (GDPR/DSAR) հետևյալն է։
- Secret rotation: ակտիվ/հաջորդ բանալին, ռոլովերի պլանը։
- Anti-abuze: capcha/արագություն ստեղծել 108/սահմանափակումներ։
4) Լիմիտներ, քվոտաներ և բեքոֆը
- Հայտարարված «X-Rance Limit- »/« X-Delta-» վերնագրերը
- Հաճախորդը հարգում է 429 և «Retry-After»
- Retrai միայն 5xx/4.1/429, էքսպոնենցիալ backoff + jitter
- Փորձերի/ժամանակի սահմանափակում (օրինակ ՝ 355 փորձ, ընդհանուր առմամբ 2460s)
5) Իդեմպոտենտալությունը և հակամարտությունները
- Բոլոր write վիրահատությունները ուղարկվում են «Idempotency-Key» (TTL 2424-72 ժամ)
- Dublicats 2449 IDEMP _ REPLAY-ի հակամարտությունը մշակվում է
- ETag/« If-Match »մրցակցային խաղերի համար ներառված է (առկայության դեպքում)
Օրինակ
bash curl -X POST /v1/payments \
-H "Idempotency-Key: pay-<uuid>" \
-d '{"amount":"12. 34","currency":"EUR"}'
6) Պագինատիան և դելիմենտալ դելտաները
- Օգտագործվում է cursor/keyset pagination («next _ cursor», «has _ more»)
- Կայուն տեսակավորում "(contated _ at, id)" փաստագրված է "
- Redremental արտադրություն ՝ watermark կամ change token
- Արգելափակող պատուհանները (overlap 1-2 րոպե) և dedup '(id, version/seq) "
7) Սխալների և ախտորոշման ձևաչափը
- Մեկ ձևաչափը 'applation/problem + json "(RFC 78.1)
- Դաշտերի աջակցությունը '«error _ code», «trace _ id», «retriable», «detail»
- Սխալների քարտեզը և հաճախորդի գործողությունները նկարագրված են (runbook)
Ձևանմուշներ
json
{
"type":"https://docs. example. com/errors/validation_failed",
"title":"Validation failed",
"status":422,
"error_code":"VAL_001",
"trace_id":"a1b2c3",
"retriable":false
}
8) Վեբհուկի 'քվիտացիա և կրկնություններ
- Հաջողության ապացույցը ցանկացած 2xx է։ ԱՐԱԳ ACK enqueue
- Подпись HMAC (`X-Signature: sha256=...`), `X-Webhook-Id`, `X-Retry`
- Ռեթերի քաղաքականությունը 'backoff + jitter, մինչև 24-72 ժամ
- DLQ + Replay: հասանելի և ստուգված
- Dedup պահեստ ընդունիչի մոտ, TTL-ն տեղադրում է ռետրոյի պատուհանները։
9) Դիտողությունն ու ճանապարհը
- Ներառվել են OpenTelemetry խոզերը կլիենտում/MSK-ում
- Հարաբերակցություն 'trace _ id '/« X-Request-ID »ամբողջ շղթայում
- Дашборды: `requests_total`, `errors_total{status}`, `latency_p95`, `retry_count`, `429_rate`
- Alarts: 5xx/429 աճը, p95 աճը, success rate, lag webhuks
PromQL (օրինակ)
promql rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m])
10) Արտադրողականություն և կայունություն
- Puls of, keep-alive, HTTP/2/3 որտեղ հնարավոր է
- Զուգահեռականը սահմանափակ է (backpressure), հաճախորդի հերթը չի «փչանում»։
- Circuit-breaker/timeout/fallback քաղաքականությունները տրամադրված են
- Բեռի թեստեր ՝ burst 10, երկար միացություններ, սառը սկիզբ
11) Տվյալներ, արժույթներ, ժամանակ
- Lenta.ru: RF-8601 UTC, գումարը 'տասանորդ տողեր/minor units, լոկալները կախված չեն շրջապատից։
- Կոդավորումը/լեզուները համաձայնեցված են (օրինակ ՝ «Accept-Language» հաղորդագրությունների համար, բայց «error _ code» - մեքենայական)
- Կլորացման քաղաքականությունը/2019 փաստագրված է
12) Ստուգումներ և հաշվետվություններ (reconciliation)
- Ամենօրյա/ժամացույցի պայուսակներ 'ստուգողական գումարներով
- API/արտանետումները փորձարկվել են (CSV/JSON, մանիֆեստներ/հեշեր)
- Տարաձայնություններ - տիկետներում, որոնք հղում են «trace _ id»
13) Կոմպլասենսը և իրավական ասպեկտները
- API օգտագործման պայմանները ընդունվում են (fultuse/express.rl)
- PII/տվյալների սեփականատերերը 'դերն ու պահեստային գոտիները որոշվում են
- Legal Hold/Alit-Log-ը ներառված է միջադեպերի ժամանակ։
14) Մոսկվան և զարգացողների պորտալը
- OpenAPI/AsyncAPI-ն արդիական է, կան «պատճենելու-տեղադրման» օրինակներ։
- MSK (TS/Py/Java/Go/.NET) - տարբերակները համաձայնեցված են, Cookbook-ը հասանելի է, Cookbook-ը հասանելի է։
- Try-it playground աշխատում է, երգի բանալիները ակտիվ են
- Changelog/դեպրեսիաներ/roadmap տեսանելի են պորտալում
15) Փորձարկում ՝ ֆունկցիոնալ, բացասական, քաոս
Ֆունկցիոնալ
- Pagination/2019/wwww.ru ռացիենտալ դելտաներ
- 401/403/404/409/422/429/5xx և «Retry-After» մշակումը։
- Webhuke-ի անհավատարիմ ստորագրությունը, ժամկետանց հոսանքները, մեծ մարմինները
- Կախվածության անջատումը (PFC/KYC) ճիշտ fallback/սխալ է։
- Վերջնական PRR (Production Readiness Review) անցյալում է
- Կանարեկային տրիբունալը '10% 2425% 2450% 24100%
- SLO ազդանշաններ (սխալներ/լատենտ/429)
- Կոնտակտային մատրիցը և էսկալացիայի ճանապարհը հրապարակվում են
- CAPA-ի բեկլոգը օդաչուից հետո ձևավորվել է
- Runbook/plack: «5xx spike», «429 storm», «webhook backlog», «timeout»
- SLO/Error Budget զեկույցները
- Գաղտնիքների վերացումը և ժամանակացույցի վրա հիմնված փոփոխությունները []
- Տարբերակների դեպրեսիայի պլանը համաձայնեցված է (ամսաթիվը sunset)
[CRUD/հիմնական սցենարները անցել են (happy path)
Բացասական
Հաոս
[[] Drop 10-30% իրադարձություններ, reorder, հետաձգում 1-10 րոպե
16) Ընդունումը և արձակումը (go-2019)
17) Շահագործումը և աջակցությունը
18) Արտեֆակտների օրինակները
Excenv-wings
yaml api:
base_url: https://api. example. com/v1 timeout_ms: 10000 retries: { max: 5, strategy: expo-jitter }
auth:
kind: oauth2 token_url: https://auth. example. com/oauth2/token scopes: [wallet:read, wallet:write]
webhooks:
secret_ref: secret/webhook-hmac parallelism: 10 max_body_kb: 256
Retrav քաղաքականությունը (կեղծ)
json
{"initial":1,"max":60,"factor":2. 0,"jitter":0. 2,"retriable":["5xx","408","429"]}
19) Վերջնական չեկի թերթիկը «ստորագրության վրա»
- Թաղումներ/տարբերակներ/բանալիներ/allowlist պատրաստ են
- Auth/JWT/keys/mTRK-ը վճռական և փորձարկվել և փորձարկվել է։
- Limits/քվոտաներ/retrai/idempotention իրականացվել են
- Պագինատիա/108/108 դու աշխատում ես տվյալների վրա
- Webhuki: ստորագրություններ, կրկնություններ, DLQ/Replay ստուգված են
- Սխալները 'problem + json', «trace _ id» կպչում է բոլոր լույսերին։
- Dashbords/alerts հավաքվում են, OTel-ը միացված է
- Բեռի/բացասական/քաոս թեստերը անցել են
- Հղումներն ու հաշվետվությունները համընկնում են, runbooks-ը կազմված է
- PRR/canareka/rollback պլանը պատրաստ է, on-call շփումները նշված են
Արդյունքը
Այս չեկլիստը փակում է API-ի տեխնոլոգիական, վիրահատական և կոմպլեքս ասպեկտները։ Անցեք ներքևի կետերը, ավտոմատացրեք լիմիտների, կուռքերի և վեբխուքերի ստուգումը, միացրեք դիտողությունն ու արձագանքի պլանը, և ձեր գործարկումը կանխատեսելի է, առանց «անակնկալների»։