Logo GH

Ekosistem API'si

(Bölüm: Ekosistem ve Ağ)

1) Hedefler ve ilkeler

Ekosistem API - katılımcılar arasındaki etkileşim için standartlaştırılmış bir dizi arayüz (operatörler, stüdyolar, PSP, KYC/AML, köprüler, analitik). Hedefler:
  • Hızlı, öngörülebilir entegrasyon (entegrasyon zamanı ↓).
  • Güvenilirlik ve ölçeklenebilirlik (SLO, QoS, geri basınç).
  • Güvenlik ve uyumluluk (minimum haklar, denetim).
  • Arızasız evrim (sürümler, uyumluluk, ficheflags).

İlkeler: sözleşme-ilk, veri minimizasyonu, idempotency, varsayılan olarak gözlemlenebilirlik, sürümlerin "iki hızı" (çekirdek ve deneysel).

2) API taksonomisi

1. REST/HTTP - senkron CRUD/komut işlemleri, idempotency-key, pagination/cursors.
2. gRPC/QUIC - düşük gecikme süresi, akışlar, ikili protokoller.
3. Etkinlikler (Pub/Sub) - domain etkinlikleri ('deposit. ',' ödeme. ',' köprü. ',' risk. ').
4. Webhooks - imzalar ve geri izlemelerle bildirimleri tersine çevirir.
5. GraphQL (sınırlı) - materyalize vitrinler üzerinde okuma toplama.
6. Admin/Meta - dizinler, sürümler, durumlar, anahtarlar, kotalar.

Erişim düzeyleri: Genel (sınırlı yöntemler/okuma), İş Ortağı (kapsamlar ve kotalar), Dahili (özel konturlar).

3) Sözleşmeler ve planlar

OpenAPI/AsyncAPI/Protobuf IDL tek bir doğruluk kaynağıdır.
Veri Sözleşmeleri - uyumluluk testleri, devre hatları, MAJOR olmadan alanları "kırma" yasağı.
Kataloglar: varlıklar/ağlar, PSP/yöntemler, bölgeler/yetki alanları, SDK sürümleri, yetenek bayrakları.

Minimum REST sözleşmesi (OpenAPI parçası)

yaml openapi: 3. 0. 3 info: { title: Ecosystem Core API, version: "2. 6. 0" }
paths:
/v2/payouts:
post:
operationId: createPayout parameters:
- in: header name: Idempotency-Key required: true schema: { type: string, maxLength: 64 }
requestBody:
required: true content:
application/json:
schema:
$ref: "#/components/schemas/PayoutRequest"
responses:
"202": { $ref: "#/components/responses/Ack" }
"409": { description: "Duplicate (idempotent)" }
components:
schemas:
PayoutRequest:
type: object required: [amount, currency, destination]
properties:
amount:  { type: string, pattern: "^[0-9]+(\\.[0-9]{1,9})?$" }
currency: { type: string, example: "USD" }
destination: { type: string }
metadata: { type: object, additionalProperties: true }

Olaylar (AsyncAPI)

yaml asyncapi: 2. 6. 0 info: { title: Ecosystem Events, version: "1. 9. 0" }
channels:
payout. finalized:
subscribe:
message:
name: PayoutFinalized payload:
type: object required: [id, ts, amount, currency, status, signature]
properties:
id: { type: string }
ts: { type: string, format: date-time }
amount: { type: string }
currency: { type: string }
status: { type: string, enum: ["finalized","failed"] }
signature: {type: string} # source signature

4) Sürüm oluşturma ve uyumluluk

SemVer: 'Binbaşı. MINÖR. PATCH '. MINOR/PATCH - geriye dönük uyumlu; MAJOR - paralel sürümler ('/v1 ','/v2') + adaptörler.
Reddetme politikası: 90 gün ≥ pencere, "iki satır" destek, sözleşmeler için otomatik bildirimler.
Özellik Bayrakları: Alanları/yöntemleri bölgeye/iş ortağına göre etkinleştir/devre dışı bırak.
Yetenek Anlaşması: El sıkışırken desteklenen profilleri bildirme.

5) Idempotence, siparişler ve imleçler

Komutlar için Idempotency-Key (oluştur/iptal et), TTL tuşları ≥ 72 saat.
Giden/gelen kutusu ve idempotent tüketici aracılığıyla tam olarak bir kez semantik.
İmleçler tarafından sayfalama: 'next _ cursor', eklemelere/silmelere karşı direnç.
Sıralama ve filtreler kararlı, açıkça belgelenmiştir.

6) Güvenlik ve güven

mTLS (service↔service), setlerin sabitlenmesi ve tuş rotasyonu.
OAuth2/OIDC (istemci kimlik bilgileri, kısa TTL ile JWT), kanala bağlanmak için PoP/DPoP.
Webhook imzaları (NMAS/anahtar sürümü/saati), tekrarlama koruması.
RBAC/ABAC ve PoLP: kapsamlar, org_id/tenant_id, nesne/işlem sınırları.
DLP/PII minimizasyonu: Etiketlerde/günlüklerde PII yasağı, tanımlayıcıların tokenizasyonu.
Oran sınırları ve WAF: org/rota/bölge başına, kötüye kullanım koruması.

Örnek Anahtar Politikası (YAML)

yaml auth:
oauth2:
issuer: "https://auth. ecosys"
jwks_uri: "https://auth. ecosys/.well-known/jwks. json"
token_ttl_s: 900 mtls:
required_for: ["internal","partner_p0"]
scopes:
- name: payouts:write
- name: payouts:read
- name: events:subscribe

7) Kotalar, QoS ve geri basınç

QoS sınıfları: P0 (ödemeler/köprü/sonuçlandırma), P1 (ürün), P2 (toplu/arşiv).
Kotalar/sınırlar: RPS, concur-requests, bytes/sec, subject/party for events.
Kabul kontrolü: "pahalı" taleplerin erken reddi, ağır sorgu görevlisi.
Backpressure: belirteçler/krediler, DLQ ile kuyruklar, jitter ile retrays.

Kota Politikası

yaml quotas:
partner_default:
rps: 200 concurrent: 100 webhooks_outbound_rps: 50 p0:
rps: 100 p95_latency_ms: 400

8) Gözlemlenebilirlik: SLI/SLO, metrikler, izler

SLI (çekirdek):
  • P95/99 gecikme süresi по маршрутам, Başarı Oranı, Hata bütçesi yanması, Kuyruk-gecikme p95, Tazelik webhooks, Teslimat başarısı %.
  • Sözleşme Uyumluluğu % (şemalar/imzalar).
  • Webhook yeniden deneme/düşürme %.

SLO: P0 p95 ≤ 400 ms, Kullanılabilirlik ≥ 99. 95%; Webhook teslimat p95 ≤ 2 с; Olaylar tazelik p95 ≤ 60 с.

Metrikler: gecikme histogramları, hata kodları, yanıtların boyutu, RPS, kiracı başına.
İzler: Uçtan uca 'trace _ id' (kenar, ağ geçidi, servis, DB, olay, webhook).
Günlükler: yapılandırılmış, PII olmadan, 'request _ id'ile korelasyon.

9) Kesinti süresiz sürüm kalıpları

Mavi-Yeşil/Kanarya SLO kapıları ve outlier-ejection ile.
Şema-ilk evrim: sadece alan ekleme, eski istemciler için adaptörler.
Sıfır kesinti veritabanı geçişleri: Çevrimiçi DDL, çift yönlü dönüştürücüler.
Değişiklik denetimi: Zaman kilidi, denetim ve uyumluluk kaydı.

10) Kataloglar ve kayıtlar

API/Sürüm Kaydı

sql
CREATE TABLE api_registry(
name TEXT, kind TEXT,      -- rest    grpc    events    webhook version TEXT, status TEXT,   -- active    canary    deprecated    retired slo JSONB, owner TEXT,
PRIMARY KEY (name, version)
);

Etkinlik Kataloğu

sql
CREATE TABLE event_catalog(
topic TEXT PRIMARY KEY,
schema_version TEXT,
qos TEXT,
retention_days INT,
pii BOOLEAN DEFAULT false
);

Anahtarlar/kapsamlar

sql
CREATE TABLE api_keys(
key_id TEXT PRIMARY KEY,
org_id TEXT, scopes TEXT[], status TEXT, expires_at TIMESTAMPTZ
);

11) Test ve sözleşmelere uygunluk

Sözleşme testleri: istemci oluşturma, şema doğrulama, negative-_cases.
Tekrarlama olay testleri: tekrarlama/yeniden sıralamaya karşı direnç.
Kaos/Lat testleri: kayıp/jitter enjeksiyonları, yavaş stor.
Güvenlik testleri: webhook imzaları, anahtar rotasyonu, tekrarlama saldırıları.
Performans profilleri: SLA sivri uçları, sıcak yollar, DA/bağımlılık köprüsü.

12) Arayüzlere örnekler

Webhooks (imza ve retrai)

yaml webhooks:
deliveries:
retry:
attempts: 5 backoff_ms: [200, 800, 1600, 3200, 6400]
jitter: true signature:
alg: "HMAC-SHA256"
header: "X-ECO-Signature"
timestamp_header: "X-ECO-Timestamp"
tolerance_s: 300

GraphQL (Toplu Okuma, Sadece Okuma)

graphql type Query {
payouts(status: [Status!], first: Int!, after: String): PayoutConnection!
}

gRPC (olay akışı)

proto service EventStream {
rpc Subscribe(SubscribeRequest) returns (stream Event);
}

13) Süreçler ve roller

API Sahibi - Sözleşme/Sürüm/SLO/Kota.
Güvenlik - anahtarlar/imzalar/denetim/DLP.
SRE/Ops - panolar, uyarılar, kapasite.
Ortak Başarı - onboarding, limitler, phicheflags.
Uyum - yargı, yaptırımlar, raporlama.

14) Panolar

Çekirdek API: rota ve çadıra göre gecikme/hata/RPS.
Webhooks: teslimat p95, yeniden denemeler, düşmeler, imzalar.
Olaylar: tazelik, gecikme, tüketici sağlığı, DLQ.
Güvenlik: son kullanma anahtarları, imzalar, reddedilen istekler.
Yönetişim: aktif sürümler/kullanımdan kaldırmalar, sözleşme uyumluluğu.

15) Playbook olayları

A. p95 gecikme P0 büyümesi

1. P0 ve P2-throttle önceliğini etkinleştir; 2) ölçekli ağ geçitleri;

2. Okumaların bir kısmını önbelleğe alın 4) "sıcak" rotaların analizi.

B. Teslimat webhook bırakma

1. İmzaları/saat kaymasını denetleyin, 2) geri dönüşleri/zaman aşımlarını artırın,

2. Partileri açın, 4) geçici olarak mermi son noktasına geçin.

C. drift sözleşmeleri

1. "Katı mod'u etkinleştir,

2. Üreticiyi bilgilendirin, 3) adaptörü serbest bırakın, 4) ölümden sonra, astarları güncelleyin.

D. Anahtar/cert uzlaşma

1. İptal/döndürme, 2) webhook'ları tekrar oynatma, 3) denetim, 4) ortaklara haber verme.

E. tekrar et/patlama al

1. Idempotency-Key/TTL'yi kontrol edin, 2) deadup'ı güçlendirin, 3) "gürültülü" kaynağı sınırlayın.

16) Uygulama kontrol listesi

1. Açıklama sözleşmeleri (OpenAPI/AsyncAPI/IDL), linters ve CI içerir.
2. Auth (OAuth2/OIDC, mTLS), webhook imzalarını, tuş rotasyonunu yapılandırın.
3. Kotalar/QoS/limitler, ağır sorgu koruması ve geri basınç girin.
4. Gözlemlenebilirliği artırın: SLI/SLO, parçalar, gösterge panoları, uyarılar.
5. Yayınları düzenleyin: kanarya/mavi-yeşil, şema-ilk geçişler.
6. Version/event/key dizinini başlatın ve işlemleri kullanımdan kaldırın.
7. Kaos/perf/güvenlik testleri yapın, oyun kitapları düzenleyin.
8. Veri minimizasyonunu ve mevzuata uygunluğu düzenli olarak yenileyin.

17) Sözlük

Contract-first - Kodlamak için resmi sözleşmeler yoluyla API tasarımı.
Idempotency-Key - işlemi güvenli bir şekilde tekrarlayan bir anahtar.
AsyncAPI - olay arayüzlerinin belirtimi.
QoS - Hizmet Kalitesi/Öncelik Sınıfı.
DLQ - sorunlu mesajlar için "ölü kuyruk".
Hata bütçesi yakma - hata bütçesini SLO'ya göre "yakma" oranı.

Sonuç olarak: Ekosistem API'si bir dizi uç nokta değil, yönetilen bir sözleşme, güvenlik, kota ve gözlemlenebilirlik sistemidir. Bu çerçeveyi izleyerek, ekosistem hızlı entegrasyonlar, öngörülebilir SLO'lar ve kesinti olmadan güvenli bir evrim kazanır - ağ katmanından ve kimlik doğrulamasından olay akışlarına ve raporlamaya kadar.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.