GH GambleHub

API դարպաս և միկրոավտիզացիա

1) API դարպասի դերը ճարտարապետության մեջ

API-դարպասը միկրովայրկյան մուտքի կետն է։ Նա

Այն փոխանցում է հարցումները (/հեդերների/գեո/քաշի/տարբերակների միջոցով)։

Պաշտպանում է պարիմետրը (TMS/mTSA, WAF, DDoS, rate limits, authN/Z)։

Այն կառավարում է (canary/AB, shadow/mirror, circuit breaker, retrai, թայմաուտներ)։

Ստանդարտիզացնում է արձանագրությունները (REST/gRPC/WindowSocket), վերնագրերը, խմբագրությունները։

Նա դիտում է (լոգներ, նետեր, հետքեր, կորեացիա)։

Փոխակերպում և վալիդավորում (JSON/XML, նորմալացում, շեմա-վալիդացիա)։

IGaming-ի համար սա նաև գեո-համադրությունն է (արգելափակումը երկրներով/տարիքով), ստացիոնար խելացի ռոուտինգը և պատասխանատու խաղի քաղաքականությունը եզրին։

2) Երթուղու տարբերակները

Path-based: `/api/v1/payments/ → payments-svc`.
Host-based: `eu. api. example. com → eu-edge`, `psp. example. com → psp-proxy`.

Header-based: "X-Client: partner-A 'international backend;" Accept: Accept: aplics/grpc "։

Geo-routing: IP/ASN/երկրով (GDPR/տեղական արգելքներ, latency)։

Weighted/Canary: «90 տոկոսը» հին, «10 տոկոսը» նոր տարբերակով։ արագ արձագանքել։

Claim-routing: по `JWT. claims. tier/role/region "(օրինակ ՝ high-roller no www.m.rm-limits)։

Failover: 71-71/71-լոկոմոտիվը COD/ամպերի և PSA-ի միջև։

3) Պարագծի անվտանգությունը

TLS everywhere: TLS 1. 2 + արտաքին տեսքի վրա, mTSA ներսում (դարպասներ ռուսական ծառայություններ)։

OAuth2/JWT 'ստորագրության ստուգում, աուդիտ' exp/nbf/aud/scope ", JWKS նավարկություն; Քեշը TTL-ի հետ։

HMAC 'մարմինների ստորագրությունը webhooks/վճարումների համար։

API բանալիներ 'ռուսական հաճախորդների համար; կապում ենք քվոտաների/դերերի հետ։

WAF: հիմնական կանոնները (inject, www.ocol anomalies), մարմնի չափը, երկրների deny թերթիկը։

DDoS-պաշտպանություն 'connational limiting, SDN cookies, rate-limit IP/բանալին/endpoint։

Zero-Trust: մանդատ քաղաքականությունները (SPIFFE/SPIRE, ծառայությունների ինքնությունը), ամենափոքր իրավունքների սկզբունքը։

Գաղտնիությունը 'PII խմբագրումը լոգարաններում, PAN/IBAN դիմակավորում, պահպանման քաղաքականություն։

4) Լիմիտներ, քվոտաներ և պաշտպանություն բուրգերից

Модели: token bucket, leaky bucket, fixed/sliding window.

Սահմանները ՝ per-IP, per-key, per-user, per-rope։

Բացի այդ,

Burst + sustained (օրինակ ՝ «50 rps burst», «10 rps sustain»)։

Retry-Budget և Slow-Loris պաշտպանությունը (ընթերցանության թայմաուտներ)։

Delta/ամիս գործընկերների համար։

5) Տրանսֆորմացիա և վալիդացիա

Normalize վերնագրերը (trace-id, delale, client-id)։

Request/Response-mapping (դաշտեր/դաշտեր, ներքին ատրիբուտների թաքցում)։

Schema validation (OpenAPI/JSON Schema) մինչև հավաքումը 4xx-ի վաղ հրաժարումն է։

Compression/« Accept-Encoding », caching (տես ներքևում)։

6) Քեշինգը և արտադրողականությունը

Edge-kash-ի համար, հասարակական մետատվյալներ, դելեգներ (TTL, «ETag »/« If-None-Match»)։

Micro-kesh 1-5 տաք GET-ի վրա (նվազեցնում է պիկովային բեռը)։

Negative-cache-ը կարճ է (404/empty) - ուշադիր։

Hedging-reques.ru-ը և մրցակցական հարցումները r95> շեմն է։

7) Թայմաուտները, ռետրան, կայունությունը, կայունությունը

Թայմաուտներ ՝ connational/read/write առանձին; խելացի p95-արժեքներ։

Retrai: idempotent-մեթոդներ (GET/PUT) backoff + jitter; retry-budget.

Idempotenty POST: «Idempotency-Key» + deduplication կողքի 112/դարպաս։

Circuit-Breaker: սխալներով/latency; half-բաց փորձարկումներ։

Bulkhead/Pool-մեկուսացումը ապստրիամների վրա։

8) Տարբերակումը և համատեղելիությունը

Մեթոդներ

URI: (պարզապես, բայց «աղմուկ»)։

Header/Content-Negotiation: `Accept: application/vnd. app. v2+json`.

Feature դրոշները/սերվերային capability - minor-փոփոխության համար։

Քաղաքականությունը 'SemVer, աջակցության պատուհանը (օրինակ ՝ «v1» = 12-18 մեզ), ապակայունացման գրաֆիկը, ավելացման համատեղելի պատասխանները (դաշտերի ավելացումը չի կոտրում)։

9) Դիտողությունն ու որակը վերահսկելը

Հարաբերակցությունը '«traceparent »/« x-request-id» պարտական է; իջնում ենք ներքև։

OpenTelemetry: RPS/p50/p95/p99/5xx/4xx, saturation, retry/circuit իրադարձությունները։

Լոգներ ՝ կառուցվածքային JSON; maskirum PII; կոդերի մակարդակները։

Թրեյսների համադրումը 'հիմնական 5-10 տոկոսը + նպատակային սխալների համար/դանդաղ։

SLO/alerts: երթուղիներով/հաճախորդներին (aptaim, latency, սխալ)։

10) Օրինագծերի կառավարման վարչությունը

Blue-Green 'RF/LB փոխակերպումը։

Canary: Քաշի մասը/հատվածները (տարածաշրջանը, գործընկեր, դերը)։

Shadow/Mirror: պատճենը տեղադրված է նոր տարբերակի վրա առանց հաճախորդի պատասխանի։

Kill-switch: դրոշը խնդրահարույց ապստրիման/ֆիչիի արագ բարձրացման համար։

11) Վճարումների խելացի միկրոակտիվացում (iGaming)

PBS ընտրության կանոնները 'գեո, արժույթ, գումար, ռիսկի սկոր, հասանելիություն, հանձնաժողովը։

Failover PSA 'ավտոմատ անցում' «5xx/timeout»։

Same-method rule 'բարձրացումներ/եզրակացություններ աղբյուրի մեթոդի միջոցով' ստուգում եզրին։

Վճարումների համադրելիությունը '«userID + amount + currency + purpose» բանալին։

ETA թափանցիկությունը 'դարպասը ավելացնում է հրաժարումների կարգավիճակները և պատճառները (PSA)։

12) Քրոս տարածաշրջանների քաղաքականությունները և համադրությունները

Geo-ֆիլտրեր 'երկրների սպիտակ/սև ցուցակները, տարիքային սահմանափակումները, IP-range-ը։

Ռեզիդենտների տվյալները 'երթուղայնացումը տարածաշրջանային կլաստերներում (GDPR/տեղական օրենքներ)։

Լոգները և TTL-ը 'տարածքների պահպանումը, ավտոմատ անունացումը։

13) Միգրացիայի օրինակներ

13. 1 NGINX (միկրոօրգանիզացիա + լիմիտ + heders)

nginx http {
map $http_x_request_id $req_id { default $request_id; }
limit_req_zone $binary_remote_addr zone=per_ip:10m rate=20r/s;

server {
listen 443 ssl http2;
server_name api. example. com;

Security add_header Strict-Transport-Security "max-age = 31536000" always;
add_header X-Content-Type-Options nosniff;

Limit on IP location/api/v1/{
limit_req zone=per_ip burst=40 nodelay;
proxy_set_header X-Request-Id $req_id;
proxy_set_header X-Client-Ip $remote_addr;
proxy_read_timeout 5s;
proxy_connect_timeout 1s;
proxy_pass http://payments_v1;
}

Canary traffic by header location/api/v2/{
if ($http_x_canary = "1") { proxy_pass http://payments_v2; }
proxy_pass http://payments_v1;
}
}
}

13. 2 Envoy (JWT, rate limit, retries, outlier)

yaml static_resources:
listeners:
- name: https address: { socket_address: { address: 0. 0. 0. 0, port_value: 443 } }
filter_chains:
- filters:
- name: envoy. filters. network. http_connection_manager typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. network. http_connection_manager. v3. HttpConnectionManager route_config:
name: local_route virtual_hosts:
- name: payments domains: ["api. example. com"]
routes:
- match: { prefix: "/api/v1/payments" }
route:
cluster: payments_v1 timeout: 5s retry_policy:
retry_on: "connect-failure,refused-stream,5xx,retriable-status-codes"
num_retries: 2 per_try_timeout: 2s http_filters:
- name: envoy. filters. http. jwt_authn typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. http. jwt_authn. v3. JwtAuthentication providers:
main:
issuer: "https://auth. example. com/"
remote_jwks: { http_uri: { uri: "https://auth. example. com/.well-known/jwks. json" } }
forward: true rules:
- match: { prefix: "/api/" }
requires: { provider_name: "main" }
- name: envoy. filters. http. ratelimit
- name: envoy. filters. http. router clusters:
- name: payments_v1 connect_timeout: 0. 5s type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: { cluster_name: payments_v1, endpoints: [{ lb_endpoints: [{ endpoint: { address: { socket_address: { address: payments, port_value: 8080 }}}}]}] }
outlier_detection: { consecutive_5xx: 5, interval: 5s, base_ejection_time: 30s }

14) Չեկ թերթերը

Նախքան ֆորումը

  • Կոդավորման սխեման (JWT/JWKS, բանալիներ, TTL kasha)։
  • Timauts/retrai/idempotenty տրամադրված են։
  • Limits: per-IP, per-key, per-rome; գործընկերների քվոտաները։
  • Հարցումների/պատասխանների սխեմայի վալիդացիա։
  • Լոգներն ու հետքերը '«trace-id», PII դիմակները։
  • SLO/alerta և dashbord.
  • Գեո կանոնները/համադրությունները/տարիքը ստուգված են։

Վիրահատություններ և վճարումներ

  • Smart-routing PSA 'կանոններ, գերակայություններ, ֆեյլովեր։
  • Same-method ստուգվում է եզրին։
  • Թափանցիկ կարգավիճակներ և սխալներ հաճախորդի համար (առանց PSA հում կոդի)։

Aleksands

  • Canary/AB և kill-switch, արձագանքի պլան։
  • Shadow-2019-ը նոր տարբերակի վրա, համեմատությունը։
  • Բեռի փորձարկումը և p95 նպատակները։

15) Որակի մետրերը (նվազագույն)

Availability/SLO երթուղիներով; error rate 5xx/4xx.

Latency p50/p95/p99 (արտաքին և ներքին)։

Retry/timeout/circuit իրադարձությունները (աղմուկի մակարդակը)։

Cache hit-ratio և RPS խնայողությունները։

Rate-limit hits-ը և հրաժարված հարցումները։

PMS-routing KPIs-ը 'հաջողություններ, TtW, ֆեյլերի տոկոսը, հանձնաժողովը։

16) Anti-patterna

Մեկ ընդհանուր սահմանը «ամեն ինչի վրա»։

«Ակնթարթ» ռեթերը առանց ջիտերի (ռուսական փոթորիկ)։

Վստահություն «X-Forwarded-For» -ի նկատմամբ առանց նորմալացման և վստահված տարածքների ցուցակի։

Ամուր թայմաուտները առանց հաշվի առնելու p95 (կեղծ գործիքներ)։

Խիստ փոխակերպումներ, որոնք կոտրում են համատեղելիությունը։

Լոգները PII/PAN/գաղտնիքներով։

Ներքին և արտաքին API-ի խառնուրդը մեկ լիցենզիայի/քաղաքականության տակ։

17) Պատասխանների և սխալների ձևանմուշները (microcopy)

429 Too Many Reques.ru: "Ստացեք հարցումների սահմանը։ Կրկնեք N վայրկյանում կամ ավելացրեք քվոտան գործընկերոջ գրասենյակում"։

401/403: "Թոկենը հակաբիոտիկ/սուլիչ է։ Ստանիսլավ նորից"։

405/504: "Ծառայությունը պատասխանում է սպասվածից ավելի երկար։ Հարցումը չի ընդունվել"։

Idempotency-www.lict: «Այս Idempotency-Key-ի հետ հարցումը արդեն մշակվել է (կարգավիճակ ՝ հաջողություն/մերժում)»։

18) Իրականացման գործընթացը (քայլերով)

1. Երթուղիների մոդելը 'ածխաջրերի/ճանապարհների քարտեզը/տարածաշրջանները։

2. Անվտանգության քաղաքականությունը ՝ TFC/mTSA, WAF, authN/Z, բանալիներ/JWKS։

3. Տե՛ ս ՝ թայմաուտներ, ռեթրա, idempotency, circuit-breaker։

4. Դիտարկումը 'լոգներ/մետրիկներ/թրեյսներ, կորեացիա։

5. Քեշ/պերֆ 'edge/micro-cache, ագրեսիա, կոննեկտ-պուլներ։

6. Ստացիոնար ռոուտինգը 'կանոնները, թեստերը, պաշտպանությունները։

7. Ալգորիթմներ ՝ canary/shadow, kill-switch, արձագանքի պլան։

8. Complaens/geo 'երկրների ֆիլտրերը, տվյալների պահպանումը, տարիքը։

Գլամուրային փուչիկ

Խիստ պարիմետրը (TFC/mTSA, WAF, limits) + կառավարվող տերմինը (retrai, circuit, canary)։

Տարածքի վրա վալիդացիան և փոխակերպումը ավելի քիչ թերություններ ունեն «ներսում»։

Trace-id-ի և PII-ի դիմակների հետ դիտարկումը ոչ թե ռուսական է, այլ ռուսական։

Խելացի ռոտինգը վճարումների և կոմպլեքս գեոյի համար քննադատական են iGaming-ի համար։

Տարբերակումը և ապակայունացման քաղաքականությունը գործընկերների համար կանխատեսելի է։

Contact

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

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

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

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

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

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