GH GambleHub

API şlýuzy we marşrut

1) Arhitekturada API-şlýuzyň roly

API-şlýuz - mikroservislere girmegiň ýeke-täk nokady. Ol:
  • Soraglary ugrukdyrýar (ýol/hadedam/geo/agram/wersiýa).
  • Perimetri goraýar (TLS/mTLS, WAF, DDoS, rate limits, authN/Z).
  • Traffigi dolandyrýar (canary/AB, shadow/mirror, circuit breaker, retrailer, wagtlar).
  • Protokollary (REST/gRPC/WebSocket), sözbaşylary, kodlary standartlaşdyrýar.
  • Syn edýär (loglar, metrikler, yzarlamalar, korelýasiýa).
  • Üýtgedýär we tassyklaýar (JSON/XML, kadalaşma, schema-validation).

iGaming üçin bu geo-complayens (ýurt/ýaş boýunça blokirleme), tölegli akylly marşrut we gyrada jogapkär oýun syýasaty.

2) Ugrukdyryş wariantlary

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' → partnýor arka tarapy; 'Accept: application/grpc'.
Geo-routing: IP/ASN/ýurt boýunça (GDPR/ýerli gadaganlyklar, latency).
Weighted/Canary: '90%' köne, '10%' täze wersiýa; çalt typmak.
Claim-routing: по `JWT. claims. tier/role/region '(mysal üçin, ýokary roller → premium-çäklendirmeler).
Failover: DPC/bulutlar we PSP arasynda aktiw-aktiw/aktiw-passiw.

3) Perimetriň howpsuzlygy

TLS everywhere: TLS 1. 2 + daşarda, mTLS içinde (hyzmat şlýuzy).
OAuth2/JWT: goly barlamak, audit 'exp/nbf/aud/skope', JWKS-rotasiýa; TTL bilen tassyklama gutusy.
HMAC: webhooks/tölegler üçin jisimleriň goly.
API-açarlar: ulgam müşderileri üçin; kwotalar/rollar bilen baglanyşdyrýarys.
WAF: esasy düzgünler (injection, protocol anomalies), bedeniň ululygy, ýurtlaryň deny sanawy.
DDoS-gorag: connection limiting, SYN cookies, rate-limit на IP/key/endpoint.
Zero-Trust: mandat syýasatlary (SPIFFE/SPIRE, hyzmatlaryň şahsyýeti), iň pes hukuklar ýörelgesi.
Gizlinlik: PII-ni loglarda redaktirlemek, PAN/IBAN-y gizlemek, saklamak syýasaty.

4) Çäklendirmeler, kwotalar we burstlardan goramak

Модели: token bucket, leaky bucket, fixed/sliding window.
Serhetler: per-IP, per-key, per-user, per-route.

Goşmaça:
  • Burst + sustained (mysal üçin '50 rps burst', '10 rps sustain').
  • Retry-Budget we Slow-Loris gorag (okamak wagtlary).
  • Hyzmatdaşlar üçin günde/aýda quota.

5) Üýtgeşmeler we tassyklamalar

Başlyklary normalize (trace-id, locale, client-id).
Request/Response-mapping (meýdanlar/kodlar, içerki atributlary gizlemek).
Schema validation (OpenAPI/JSON Schema) proksatdan öň - irki şowsuzlyk 4xx.
Compression/' Accept-Encoding ', caching (aşakda serediň).

6) Kesmek we öndürijilik

Maglumat kitaplary, meta-maglumatlar, konfigurasiýalar üçin Edge-kesh (TTL, 'ETag '/' If-None-Match').
Micro-kesh 1-5 s gyzgyn GET (iň ýokary ýüküni azaldar).
Negative-cache gysgaça (404/empty) - seresap.
Hedging-requests we r95> bosagada bäsdeşlik soraglary.

7) Wagtlar, retralar, durnuklylyk

Wagtlar: connect/read/write aýratyn; akylly p95-görkezmeler.
Retraýlar: idempotent-usullar (GET/PUT) c backoff + jitter; retry-budget.
Idempotentlik POST: 'Idempotency-Key' + hyzmat/şlýuz tarapynda duplikasiýa.
Circuit-Breaker: ýalňyşlyk/latency; half-open synaglary.
Bulkhead/Pool-apstrimlere görä izolýasiýa.

8) Wersiýalaşdyrmak we gabat gelmek

Usullar:
  • URI: '/v1/... '(ýönekeý, ýöne "şowhunly" marşrutlar).
  • Header/Content-Negotiation: `Accept: application/vnd. app. v2+json`.
  • Feature-baýdaklar/serwer capability - minor-üýtgeşmeleriň laýyklygy üçin.

Syýasat: SemVer, goldaw penjiresi (mysal üçin 'v1' = 12-18 aý), deprikasiýa tertibi, giňeldilende gabat gelýän jogaplar (meýdanlary goşmak - bozmaýar).

9) Gözegçilik etmek we hil gözegçiligi

Baglanyşyk: 'traceparent '/' x-request-id' hökmany; aşak atýarys.
OpenTelemetry: RPS/p50/p95/p99/5xx/4xx, saturation, retry/circuit hadysalarynyň metrikleri.
Logy: gurluş JSON; PII-ni gizleýäris; kodlar boýunça derejeler.
Traýslaryň sampleri: esasy 5-10% + ýalňyşlyk/haýal maksat.
SLO/alertler: marşrutlar/müşderiler boýunça (aptaim, latency, ýalňyşlyk).

10) Relizleriň traffigini dolandyrmak

Blue-Green: DNS/LB geçiş.
Canary: agram paýy/segmentleri (sebit, hyzmatdaş, rol).
Shadow/Mirror: müşderä jogap bermezden traffigiň täze wersiýasyna göçürme.
Kill-switch: kynçylykly apstrimi/fiçany çalt öçürmek üçin baýdak.

11) Tölegleri akylly marşrutlaşdyrmak (iGaming)

PSP saýlamagyň düzgünleri: geo, walýuta, jemi, töwekgelçilik-skor, elýeterlilik, komissiýa.
Failover PSP: '5xx/timeout' -da awtomatiki geçiş.
Same-method rule: başlangyç usul arkaly yzyna gaýtarmalar/netijeler - gyrada barlamak.
Tölegleriň gidempotentligi: açar 'userId + amount + currency + purpose'.
ETA-aç-açanlyk: şlýuz statuslary we şowsuzlyklaryň sebäplerini goşýar (PSP kodlary däl).

12) Kross-sebitleriň syýasaty we gabat gelmek

Geo-süzgüçler: ýurtlaryň ak/gara sanawlary, ýaş çäkleri, IP reýnjleri.
Rezidentleriň maglumatlary: sebit klasterlerine ugrukdyrmak (GDPR/ýerli kanunlar).
Logi we TTL: sebitler boýunça saklamak, awtomatiki anonimleşdirmek.

13) Konfigurasiýa mysallary

13. 1 NGINX (marşrut + limit + hederler)

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) Çek-listler

Ugur çykmazdan ozal

  • Tassyklamak shemasy (JWT/JWKS, açarlar, TTL kesh).
  • Wagt/retrailer/idempotentlik sazlandy.
  • Çäkler: per-IP, per-key, per-route; hyzmatdaşlaryň kwotalary.
  • Soraglaryň/jogaplaryň shemasyny tassyklamak.
  • 'trace-id', PII maskalary bilen ýazgylary we yzarlamalary.
  • SLO/alertler we daşbord.
  • Geo-düzgünler/complayens/ýaş barlandy.

Amallar we tölegler

  • PSP akylly marşrutizasiýa: düzgünler, ileri tutulýan ugurlar, feýlower.
  • Same-method gyrada barlanýar.
  • Müşderi üçin aç-açan statuslar we ýalňyşlyk kodlary (çig PSP kody bolmazdan).

Neşirler

  • Canary/AB we kill-switch, yzyna gaýtarmak meýilnamasy.
  • Täze wersiýa kölegeli traffik, metrikleri deňeşdirmek.
  • Ýük synagy we p95 maksatlary.

15) Hil ölçegleri (iň az)

Ugurlar boýunça Availability/SLO; error rate 5xx/4xx.
Latency p50/p95/p99 (daşarky we içerki).
Retry/timeout/circuit wakalar (ses derejesi).
Cache hit-ratio we RPS tygşytlamak.
Rate-limit hits we taşlanan soraglar.
PSP-routing KPIs: üstünlikler, TtW, feýloweriň göterimi, komissiýa.

16) Anti-patternler

Hemme zat üçin bir umumy çäk.
Jittersiz "gyssagly" retralar (tupanyň güýçlenmegi).
"X-Forwarded-For" -a kadalaşmazdan we ynanylan proksileriň sanawy bolmazdan ynam.
P95 hasaba almazdan gaty wagtlar (ýalan işleýişler).
Sazlaşygy bozýan gaty üýtgeşmeler.
PII/PAN/syrly ýazgylar.
Içerki we daşarky API-leri bir domen/syýasatyň aşagynda garyşdyrmak.

17) Jogap we ýalňyşlyk şablonlary (microcopy)

429 Too Many Requests: "Soraglaryň çägine ýetildi. N sekuntdan soň gaýtalaň ýa-da ýoldaşyňyzyň otagynda kwotany artdyryň"

401/403: "Belgi hakyky däl/möhleti gutardy. Girişiňizi täzeden ýerine ýetiriň"

408/504: "Hyzmat garaşylýandan has uzyn jogap berýär. Haýyş kabul edilmedi"

Idempotency-conflict: "Şeýle Idempotency-Key bilen haýyş eýýäm işlenildi (status: üstünlik/şowsuzlyk)."

18) Durmuşa geçirmek prosesi (ädimler boýunça)

1. Marşrutlaryň modeli: domenleriň/ýollaryň/sebitleriň kartasy.
2. Howpsuzlyk syýasaty: TLS/mTLS, WAF, authN/Z, açarlar/JWKS.
3. Ygtybarlylygy: wagt, retrailer, idempotency, circuit-breaker.
4. Syn edilişi: logi/metrika/treýs, korelýasiýa.
5. Kesh/perf: edge/micro-cache, gysyş, konnekt-pullar.
6. Töleg marşruty: düzgünler, synaglar, gözegçilik.
7. Relizler: canary/shadow, kill-switch, yzyna gaýtarmak meýilnamasy.
8. Complayens/geo: ýurtlaryň süzgüçleri, maglumatlary saklamak, ýaşy.

Jemleýji şpargalka

Berk perimetri (TLS/mTLS, WAF, çäklendirmeler) + dolandyrylýan traffik (retralar, circuit, canary).
Gyradaky tassyklama we üýtgeşmeler → içindäki kemçiliklerden az.
Trace-id we PII maskalary bilen syn etmek wariant däl, standart.
Tölegleriň akylly-routingi we complayens-geo - iGaming üçin kritikdir.
Wersiýalaşdyrmak we deprikasiýa syýasaty hyzmatdaşlar üçin öňünden aýdylýandyr.

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.