Python SDK
通过 Python 控制您的托管服务
zinn-sdk 是适用于 Zinn Digital® API 的类型化 Python 客户端,根据构建该 API 的相同 OpenAPI 规范生成。每个操作都具有同步和 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 函数,它们以蛇形命名法(snake case)根据该操作命名,并在 zinn_sdk.api 下按 API 区域进行分组。
从规范生成
每当 OpenAPI 规范发生更改时,系统都会自动发布新版本。生成器目前无法表示的少数操作均会在每次发布时列出并进行检查,并且仍可通过 REST API 正常使用。
异步调用
使用 asyncio 的相同调用,返回 HTTP 状态以及解析后的响应。
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 及更高版本。