Yapılandırma

Listings API Python istemcisini yapılandırın: API anahtarı, temel URL, zaman aşımı, yeniden denemeler ve günlük kaydı.

Kurucu imzası

Python
listingsapi.ListingsAPI(    api_key: str | None = None,    *,    base_url: str | None = None,    timeout: float = 240.0,    max_retries: int = 2,)

Tüm argümanlar isteğe bağlıdır. api_key belirtilmezse istemci ortamdan LISTINGSAPI_KEY değerini okur ve ikisi de ayarlanmamışsa oluşturma sırasında AuthenticationError hatasını yükseltir.

Seçenekler

SeçenekTürVarsayılanAçıklama
api_keystr | NoneNoneAPI anahtarı. Belirtilmezse LISTINGSAPI_KEY ortam değişkeni kullanılır.
base_urlstr | Nonehttps://listingsapi.comAPI'nin temel adresi. Sondaki eğik çizgi otomatik olarak kaldırılır.
timeoutfloat240.0Saniye cinsinden istek başına zaman aşımı (her HTTP isteğine ayrı ayrı uygulanır).
max_retriesint2429 ve 5xx yanıtlarında otomatik yeniden denemeler. Devre dışı bırakmak için 0 olarak ayarlayın.

API anahtarı

bash
export LISTINGSAPI_KEY="your-api-key"
Python
import listingsapi # From environment (recommended)client = listingsapi.ListingsAPI() # Explicit keyclient = listingsapi.ListingsAPI(api_key="your-api-key")

Zaman aşımı

Varsayılan değer 240.0 saniyedir. Kısa süreli betikler veya etkileşimli kullanım için daha kısa bir süre tercih edebilirsiniz:

Python
client = listingsapi.ListingsAPI(timeout=30.0)

Zaman aşımı her HTTP isteğine ayrı ayrı uygulanır. Toplu sayfalama çağrıları (auto_paging_iter), istek başına zaman aşımını her istek için bağımsız olarak uygular.

Yeniden denemeler

SDK, requests oturumuna urllib3 Retry bağdaştırıcısını ekler; bu bağdaştırıcı 429, 500, 502, 503 ve 504 yanıtlarında otomatik olarak yeniden dener, ancak bunu yalnızca güvenli yöntemler için yapar: GET, HEAD ve OPTIONS. Yazma istekleri (POST, DELETE) tam olarak bir kez gönderilir ve başarısızlık durumunda hata hemen yükseltilir. Varsayılan olarak, 0.5 saniyelik üstel bekleme katsayısıyla 2 yeniden deneme yapılır. Retry-After üstbilgileri dikkate alınır; dolayısıyla bekleme süresi belirten bir 429 yanıtı alındığında, tam olarak bu süre geçtikten sonra yeniden denenir.

v4 API, Idempotency-Key desteği sunmaz ve tekrarlanan yazma işlemlerini algılamaz; bu nedenle zaman aşımına uğrayan veya 5xx döndüren bir yazma işlemi zaten kaydedilmiş olabilir. Kontrol etmeden yeniden denemek ikinci bir konum, gönderi veya yorum yanıtı oluşturur. Bir yazma işlemini tekrarlamadan önce, sizin kontrolünüzdeki bir anahtarı kullanarak kaydı yeniden okuyun.

Python
# More aggressive retry for long-running batch jobsclient = listingsapi.ListingsAPI(max_retries=5) # Disable retries entirely (e.g. when you want fast failures)client = listingsapi.ListingsAPI(max_retries=0)

Tüm yeniden denemelere rağmen devam eden bir 429, RateLimitError olarak yükseltilir; bekleme süresini elle uygulama örneği için Hata işleme bölümüne bakın.

Temel URL'yi geçersiz kılma

Hazırlık ortamları veya dahili vekil sunucular için yararlıdır:

Python
client = listingsapi.ListingsAPI(base_url="https://staging.example.com")

Sondaki eğik çizgi otomatik olarak kaldırılır. Tüm istekler bu temel adresteki /api/v4/ yolu altında yapılır.

Günlük kaydı

SDK, standart logging modülü aracılığıyla listingsapi günlük kaydedicisini kullanarak günlük tutar. DEBUG düzeyinde her isteğin yöntemini ve URL'sini (GET için sorgu parametrelerini de) kaydeder; istek gövdeleri ve API anahtarınız hiçbir zaman günlüğe kaydedilmez.

Python
import logginglogging.basicConfig()logging.getLogger("listingsapi").setLevel(logging.DEBUG) import listingsapiclient = listingsapi.ListingsAPI()client.locations.list(first=1)

Sonraki adımlar