Python SDK

Керуйте своїм хостингом за допомогою Python

zinn-sdk — це типізований клієнт Python для Zinn Digital® API, згенерований на основі тієї самої специфікації OpenAPI, на якій побудовано API. Кожна операція має синхронні варіанти та варіанти 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)

Автентифікація

Кінцеві точки відкритого каталогу, як-от регіони та плани, не потребують облікових даних. Для всього іншого використовується ключ API для кожної організації, переданий до AuthenticatedClient, який надсилає його як токен на пред'явника. Ключ містить лише ті дозволи, які ви надаєте під час його створення, і ви можете відкликати його в будь-який час. Зберігайте його у змінній середовища або у своєму сховищі секретів, у жодному разі не у вихідному коді.

Створіть ключ API на своїй панелі керування

Що ви отримуєте

Типізовані моделі

Запити та відповіді є моделями attrs із підказками типів, тож ваш редактор та засіб перевірки типів розуміють кожне поле.

Синхронізація та asyncio

Кожна операція має функції sync, sync_detailed, asyncio та asyncio_detailed, названі відповідно до операції у стилі snake case та згруповані за областями API у zinn_sdk.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?

Так. Установіть zinn-sdk із PyPI за допомогою pip install zinn-sdk та імпортуйте zinn_sdk. Це типізований клієнт, згенерований на основі нашої специфікації OpenAPI, із синхронними викликами та викликами asyncio.

Де знаходиться певна кінцева точка в Python SDK?

Операції згруповано за областю API у zinn_sdk.api та названо відповідно до їхнього ідентифікатора операції у стилі snake case. Наприклад, виведення списку сайтів — це zinn_sdk.api.hosting.list_sites.

Які версії Python підтримуються?

Python 3.11 і новіші версії.

Дослідити кожну кінцеву точку

Кожна операція, яку може викликати SDK, описана в довіднику з API разом із її параметрами, відповідями та дозволами.

Довідник API