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 キーを使用し、ベアラートークンとして送信されます。キーには作成時に付与した権限のみが含まれ、いつでも取り消すことができます。ソースコード内ではなく、環境変数またはシークレットストアに保管してください。

ダッシュボードで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 以降。

すべてのエンドポイントを探索

SDKが呼び出し可能なすべての操作は、そのパラメーター、レスポンス、および権限とともにAPIリファレンスに記載されています。

APIリファレンス