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 密钥,该客户端会将其作为承载令牌发送。密钥仅包含您在创建时授予的权限,并且您可以随时将其撤销。请将其保存在环境变量或密钥库中,切勿放入源代码中。

在仪表盘中创建 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 及更高版本。

探索每个端点

SDK 可以调用的每个操作均在 API 参考中有详细说明,包括其参数、响应和权限。

API 参考