Ana içeriğe geç

Hata yönetimi

Kütüphanenin fırlattığı tüm istisnalar KuveytTurkError'dan türer.

from kuveytturk_api import (
    APIError, AuthenticationError, AuthorizationRequiredError, BusinessError, TransportError,
)

try:
    yanit = kt.accounts.account_list_v3()
except BusinessError as hata:          # HTTP 200 ama yanıtta success: false
    print(hata.error_code, hata.error_message)
except APIError as hata:               # 4xx / 5xx
    print(hata.status_code, hata.error_code, hata.error_message, hata.body)
except AuthorizationRequiredError:     # müşterinin (yeniden) giriş yapması gerekiyor
    ...
except AuthenticationError as hata:    # token alınamadı (ör. invalid_scope)
    print(hata.error, hata.error_description)
except TransportError:                 # ağ hatası, zaman aşımı
    ...
İstisna Ne zaman
BadRequestError HTTP 400: eksik/hatalı parametre ya da imza hatası
UnauthorizedError HTTP 401: token geçersiz ya da uç nokta başka bir akış istiyor
ForbiddenError HTTP 403: token'ın kapsamı uç noktaya uymuyor
NotFoundError HTTP 404: uç nokta ya da kayıt yok
RateLimitError HTTP 429
ServerError HTTP 5xx
BusinessError HTTP başarılı ama yanıtta success: false
AuthenticationError Kimlik sunucusu token vermedi
AuthorizationRequiredError Müşteri token'ı yok, süresi dolmuş ya da kapsamı eksik
TransportError İstek sunucuya ulaşamadı
ConfigurationError, SignatureError Eksik ayar, okunamayan private key

APIError ve alt sınıflarında: status_code, error_code, error_message, results (tüm mesajlar), body (ham yanıt), method, url.

Gateway'in sık görülen yanıtları

Yanıt Anlamı Ne yapmalı
400 Client signature validation error İmza doğrulanamadı Portaldaki public key ile kullanılan private key eşleşiyor mu?
400 Signature header parameter is empty. İmza başlığı yok Kütüphane her zaman ekler; isteği elle mi gönderiyorsunuz?
401 Invalid grant type. Authorization Code is required. Uç nokta müşteri girişi istiyor flow="authorization_code" ile çağırın
403 Invalid Scope Token'ın kapsamı uç noktaya uymuyor Uç noktanın kapsamını kontrol edin
404 Path not found Uç nokta sunucuda yok Doküman eskimiş olabilir
Token: invalid_scope Uygulamanız bu kapsama yetkili değil Portalda ilgili API ürününü ekleyin

Yeniden deneme

Durum Davranış
GET + ağ hatası ya da 500/502/503/504 max_retries kez (varsayılan 2) artan aralıklarla yeniden denenir
POST, PUT, PATCH Asla otomatik yeniden denenmez
401 Token bir kez yenilenip istek tekrarlanır (istek işlenmediği için POST'ta da güvenlidir)

Para transferi gibi bir POST zaman aşımına uğrarsa işlemin gerçekleşip gerçekleşmediği bilinmez; yeniden göndermeden önce durumu sorgulayın.