設定
Listings APIのPythonクライアントのAPIキー、ベースURL、タイムアウト、再試行、ログ出力を設定します。
コンストラクターのシグネチャ
listingsapi.ListingsAPI( api_key: str | None = None, *, base_url: str | None = None, timeout: float = 240.0, max_retries: int = 2,)すべての引数は省略可能です。api_keyを省略すると、クライアントは環境変数からLISTINGSAPI_KEYを読み取り、どちらも設定されていない場合はインスタンスの作成時にAuthenticationErrorを送出します。
オプション
APIキー
export LISTINGSAPI_KEY="your-api-key"import listingsapi # From environment (recommended)client = listingsapi.ListingsAPI() # Explicit keyclient = listingsapi.ListingsAPI(api_key="your-api-key")タイムアウト
デフォルトは240.0秒です。短時間で終了するスクリプトや対話的な用途では、より短い値が適している場合があります。
client = listingsapi.ListingsAPI(timeout=30.0)タイムアウトは各HTTPリクエストに個別に適用されます。複数ページを一括取得する呼び出し(auto_paging_iter)でも、リクエストごとのタイムアウトが個別に適用されます。
リトライ
SDKは、requestsセッションにurllib3のRetryアダプターをマウントし、429、500、502、503、504のレスポンスに対して自動的にリトライしますが、対象はGET、HEAD、OPTIONSという安全なメソッドのみです。書き込み(POST、DELETE)は必ず1回だけ送信され、失敗すると直ちに例外を送出します。デフォルトのリトライ回数は2回で、指数バックオフの係数は0.5秒です。Retry-Afterヘッダーに従うため、429に待機時間が指定されている場合は、その時間だけ待機してからリトライします。
v4 APIはIdempotency-Keyをサポートせず、書き込みの繰り返しも検出しないため、タイムアウトした書き込みや5xxを返した書き込みでも、すでにコミットされている可能性があります。確認せずにリトライすると、拠点、投稿、またはレビューへの返信が重複して作成されます。書き込みを繰り返す前に、自分で管理しているキーを使ってレコードを再取得してください。
# 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)すべてのリトライ後も429が返される場合は、RateLimitErrorとして送出されます。手動でバックオフを実装する方法については、エラー処理を参照してください。
ベースURLの上書き
ステージング環境や内部プロキシで役立ちます。
client = listingsapi.ListingsAPI(base_url="https://staging.example.com")末尾のスラッシュは自動的に削除されます。すべてのリクエストは、このオリジンの/api/v4/パス配下に送信されます。
ログ
SDKは、標準のloggingモジュールを使用し、listingsapiロガーでログを出力します。DEBUGレベルでは、すべてのリクエストのメソッドとURL(GETの場合はクエリパラメーターも)を記録しますが、リクエストボディとAPIキーは一切記録しません。
import logginglogging.basicConfig()logging.getLogger("listingsapi").setLevel(logging.DEBUG) import listingsapiclient = listingsapi.ListingsAPI()client.locations.list(first=1)