Ana içeriğe geç

İstemciler

Hazır uç nokta metotları (kt.accounts, kt.fx, ...) için Uç noktalar bölümüne bakın.

KuveytTurk

KuveytTurk(
    client_id: str | None = None,
    client_secret: str | None = None,
    private_key: PrivateKeySource | None = None,
    *,
    environment: str | Environment = "sandbox",
    redirect_uri: str | None = None,
    token_store: TokenStore | None = None,
    timeout: float = DEFAULT_TIMEOUT,
    max_retries: int = DEFAULT_MAX_RETRIES,
    language_id: int | None = None,
    device_id: str | None = None,
    raise_on_failure: bool = True,
    http_client: Client | None = None,
    private_key_password: str | bytes | None = None,
)

Kuveyt Türk API Market istemcisi (senkron).

Örnek:

from kuveytturk_api import KuveytTurk

kt = KuveytTurk(
    client_id="...",
    client_secret="...",
    private_key="private_key.pem",
    environment="sandbox",
)
rates = kt.request("GET", "/v1/fx/rates", scope="public").value

Parameters:

Name Type Description Default
client_id str | None

Geliştirici portalındaki uygulamanın Client ID değeri.

None
client_secret str | None

Uygulamanın Client Secret değeri.

None
private_key PrivateKeySource | None

İstekleri imzalayan RSA private key — dosya yolu, PEM içeriği ya da cryptography anahtar nesnesi. Karşılığı olan public key portalda kayıtlı olmalı.

None
environment str | Environment

"sandbox" (varsayılan), "production" ya da bir Environment.

'sandbox'
redirect_uri str | None

Authorization code akışı için; portalda kayıtlı adresle birebir aynı.

None
token_store TokenStore | None

Token'ların saklanacağı yer. Varsayılan bellektir; betiklerde FileTokenStore kullanışlıdır.

None
timeout float

Saniye cinsinden varsayılan zaman aşımı.

DEFAULT_TIMEOUT
max_retries int

Ağ hatası ve 5xx yanıtlarında yalnızca GET isteklerinin kaç kez yeniden deneneceği. POST'lar (para transferi vb.) asla otomatik tekrarlanmaz.

DEFAULT_MAX_RETRIES
language_id int | None

LanguageId başlığı (1: Türkçe, 2: İngilizce).

None
device_id str | None

DeviceId başlığı (denetim kayıtları için isteğe bağlı).

None
raise_on_failure bool

Yanıt zarfında success: false gelirse BusinessError fırlatılsın mı.

True
http_client Client | None

Kendi httpx.Client nesneniz (proxy, özel sertifika vb. için).

None
private_key_password str | bytes | None

Private key şifreliyse parolası.

None

redirect_uri property

redirect_uri: str | None

Authorization code akışında kullanılan yönlendirme adresi (tanımlıysa).

auth property

auth: Auth

OAuth2 işlemleri (bkz. Auth).

from_env classmethod

from_env(
    env_file: str | PathLike[str] | None = None,
    **overrides: Any,
) -> KuveytTurk

İstemciyi KUVEYTTURK_* ortam değişkenlerinden kurar.

Okunan değişkenler: KUVEYTTURK_CLIENT_ID, KUVEYTTURK_CLIENT_SECRET, KUVEYTTURK_PRIVATE_KEY (dosya yolu ya da PEM içeriği), KUVEYTTURK_PRIVATE_KEY_PASSWORD, KUVEYTTURK_REDIRECT_URI, KUVEYTTURK_ENVIRONMENT, KUVEYTTURK_LANGUAGE_ID, KUVEYTTURK_DEVICE_ID.

Parameters:

Name Type Description Default
env_file str | PathLike[str] | None

Verilirse bu .env dosyası da okunur (gerçek ortam değişkenleri önceliklidir).

None
**overrides Any

Yapıcıya doğrudan geçirilecek, ortamdaki değerleri ezen argümanlar.

{}

as_user

as_user(user: str) -> KuveytTurk

Müşteri token'ı user anahtarından okunan bir istemci görünümü döndürür.

Çok kullanıcılı uygulamalarda her müşteri için ayrı token saklamak içindir. Dönen nesne bağlantıları ve token deposunu bu istemciyle paylaşır:

kt.auth.exchange_code(code, user="musteri-42")
hesaplar = kt.as_user("musteri-42").request(
    "GET", "/v2/accounts", scope="accounts", flow="authorization_code"
)

request

request(
    method: str,
    path: str,
    *,
    scope: str = "",
    flow: Flow = "client_credentials",
    path_params: Mapping[str, Any] | None = None,
    query: Mapping[str, Any] | None = None,
    body: Any = None,
    options: RequestOptions | None = None,
) -> APIResponse

Herhangi bir uç noktayı çağırır; token ve imza otomatik eklenir.

Hazır uç nokta metotları da bunu kullanır. Kütüphanede henüz karşılığı olmayan bir uç nokta için doğrudan çağırabilirsiniz:

kt.request("GET", "/v4/accounts/{suffix}/transactions", scope="accounts",
           path_params={"suffix": 1}, query={"itemCount": 10})

Parameters:

Name Type Description Default
method str

HTTP metodu.

required
path str

Gateway'e göre yol; {ad} yer tutucuları path_params ile doldurulur.

required
scope str

Uç noktanın dokümanındaki kapsam (ör. "accounts").

''
flow Flow

"client_credentials" ya da "authorization_code".

'client_credentials'
query Mapping[str, Any] | None

Sorgu parametreleri; None değerler gönderilmez.

None
body Any

JSON gövdesi (POST/PUT/PATCH).

None
options RequestOptions | None

Bu çağrıya özel ayarlar (bkz. RequestOptions).

None

Raises:

Type Description
APIError

API hata yanıtı döndürdüyse (alt sınıflarına bakın).

AuthorizationRequiredError

Müşteri girişi gerekiyorsa.

TransportError

İstek sunucuya ulaşamadıysa.

get

get(
    path: str,
    *,
    scope: str = "",
    flow: Flow = "client_credentials",
    path_params: Mapping[str, Any] | None = None,
    query: Mapping[str, Any] | None = None,
    options: RequestOptions | None = None,
) -> APIResponse

request("GET", ...) kısayolu.

post

post(
    path: str,
    *,
    scope: str = "",
    flow: Flow = "client_credentials",
    path_params: Mapping[str, Any] | None = None,
    query: Mapping[str, Any] | None = None,
    body: Any = None,
    options: RequestOptions | None = None,
) -> APIResponse

request("POST", ...) kısayolu.

close

close() -> None

Açık bağlantıları kapatır (istemci kendi httpx.Client'ını oluşturduysa).

AsyncKuveytTurk

AsyncKuveytTurk(
    client_id: str | None = None,
    client_secret: str | None = None,
    private_key: PrivateKeySource | None = None,
    *,
    environment: str | Environment = "sandbox",
    redirect_uri: str | None = None,
    token_store: TokenStore | None = None,
    timeout: float = DEFAULT_TIMEOUT,
    max_retries: int = DEFAULT_MAX_RETRIES,
    language_id: int | None = None,
    device_id: str | None = None,
    raise_on_failure: bool = True,
    http_client: AsyncClient | None = None,
    private_key_password: str | bytes | None = None,
)

Kuveyt Türk API Market istemcisi (asenkron).

Argümanlar KuveytTurk ile aynıdır; http_client olarak httpx.AsyncClient alır:

async with AsyncKuveytTurk.from_env(".env") as kt:
    rates = (await kt.request("GET", "/v1/fx/rates", scope="public")).value

redirect_uri property

redirect_uri: str | None

Authorization code akışında kullanılan yönlendirme adresi (tanımlıysa).

auth property

auth: AsyncAuth

OAuth2 işlemleri (bkz. AsyncAuth).

from_env classmethod

from_env(
    env_file: str | PathLike[str] | None = None,
    **overrides: Any,
) -> AsyncKuveytTurk

İstemciyi KUVEYTTURK_* ortam değişkenlerinden kurar (bkz. KuveytTurk.from_env).

as_user

as_user(user: str) -> AsyncKuveytTurk

Müşteri token'ı user anahtarından okunan bir istemci görünümü döndürür.

request async

request(
    method: str,
    path: str,
    *,
    scope: str = "",
    flow: Flow = "client_credentials",
    path_params: Mapping[str, Any] | None = None,
    query: Mapping[str, Any] | None = None,
    body: Any = None,
    options: RequestOptions | None = None,
) -> APIResponse

Herhangi bir uç noktayı çağırır (bkz. KuveytTurk.request).

get async

get(
    path: str,
    *,
    scope: str = "",
    flow: Flow = "client_credentials",
    path_params: Mapping[str, Any] | None = None,
    query: Mapping[str, Any] | None = None,
    options: RequestOptions | None = None,
) -> APIResponse

request("GET", ...) kısayolu.

post async

post(
    path: str,
    *,
    scope: str = "",
    flow: Flow = "client_credentials",
    path_params: Mapping[str, Any] | None = None,
    query: Mapping[str, Any] | None = None,
    body: Any = None,
    options: RequestOptions | None = None,
) -> APIResponse

request("POST", ...) kısayolu.

aclose async

aclose() -> None

Açık bağlantıları kapatır (istemci kendi httpx.AsyncClient'ını oluşturduysa).

RequestOptions

Tek bir çağrıya özel ayarlar (her uç nokta metodunun request_options argümanı).

Attributes:

Name Type Description
token str | Token

Hazır bir access token. Verilirse token yönetimi tamamen atlanır.

user str

Müşteri token'ı hangi kullanıcı anahtarından okunacak.

flow Flow

Uç noktanın dokümandaki yetkilendirme akışını ezer.

scope str

Uç noktanın dokümandaki kapsamını ezer.

timeout float

Saniye cinsinden zaman aşımı.

headers Mapping[str, str]

İsteğe eklenecek başlıklar.

raise_on_failure bool

success: false yanıtında istisna fırlatılsın mı.