Python SDK
Pythonからホスティングを操作
zinn-sdkは、APIの構築元と同じOpenAPI仕様から生成された、Zinn Digital® API用の型定義されたPythonクライアントです。すべての操作に同期型とasyncioのバリアントがあり、すべてのリクエストとレスポンスは型定義されたモデルです。
インストール
パッケージはPyPIでzinn-sdkとして公開されており、zinn_sdkとしてインポートされます。Python 3.11以降が必要です。
pip install zinn-sdkクイックスタート
キーなしで公開ホスティングリージョンを一覧表示し、次にキーを使用してご自身のサイトを一覧表示します。
import os
from zinn_sdk import AuthenticatedClient, Client
from zinn_sdk.api.catalog import list_public_hosting_regions
from zinn_sdk.api.hosting import list_sites
# Public catalogue endpoints need no key.
public = Client(base_url="https://api.zinndigital.com")
regions = list_public_hosting_regions.sync(client=public)
print([region.slug for region in regions.data])
# Everything else uses a per-organisation API key.
api = AuthenticatedClient(base_url="https://api.zinndigital.com", token=os.environ["ZINN_API_KEY"])
page = list_sites.sync(client=api, limit=5)
for site in page.data:
print(site.name, site.status)認証
リージョンやプランなどの公開カタログエンドポイントには、認証情報は不要です。それ以外はすべて、AuthenticatedClient に渡される組織ごとの API キーを使用し、ベアラートークンとして送信されます。キーには作成時に付与した権限のみが含まれ、いつでも取り消すことができます。ソースコード内ではなく、環境変数またはシークレットストアに保管してください。
含まれるもの
型付きモデル
リクエストとレスポンスは型ヒントを備えた attrs モデルであるため、お使いのエディタと型チェッカーがすべてのフィールドを認識します。
同期とasyncio
各操作には sync、sync_detailed、asyncio、asyncio_detailed の各関数があり、操作名に基づきスネークケースで命名され、zinn_sdk.api 配下の API 領域ごとにグループ化されています。
仕様から生成
OpenAPI仕様が変更されるたびに、新しいバージョンが自動的に公開されます。ジェネレーターがまだ表現できない少数の操作はリリースごとにリストアップされて確認され、REST APIを通じて引き続き利用できます。
非同期呼び出し
HTTPステータスと解析されたレスポンスを返す、asyncioを使用した同じ呼び出し。
import asyncio
from zinn_sdk.api.hosting import list_sites
# Every operation has sync, sync_detailed, asyncio and asyncio_detailed variants.
async def main() -> None:
response = await list_sites.asyncio_detailed(client=api, limit=5)
print(response.status_code, len(response.parsed.data))
asyncio.run(main())質問
Python SDKはありますか?
はい。pip install zinn-sdk を使用して PyPI から zinn-sdk をインストールし、zinn_sdk をインポートしてください。これは弊社の OpenAPI 仕様から生成された型付きクライアントであり、同期呼び出しおよび asyncio 呼び出しに対応しています。
Python SDK 内の特定のエンドポイントはどこにありますか?
操作は zinn_sdk.api 配下の API 領域ごとにグループ化され、snake case の操作 ID に基づいて命名されています。たとえば、サイトの一覧表示は zinn_sdk.api.hosting.list_sites です。
どのバージョンのPythonがサポートされていますか?
Python 3.11 以降。