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, който го изпраща като bearer токен. Даден ключ носи само разрешенията, които му предоставяте при създаването му, и можете да го отмените по всяко време. Съхранявайте го в променлива на средата или в хранилището си за тайни, никога в изходния код.

Създайте 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 и са именувани според техния идентификатор на операция (operation id) в snake case. Например извеждането на списък със сайтове е zinn_sdk.api.hosting.list_sites.

Кои версии на Python се поддържат?

Python 3.11 и по-нови версии.

Разгледайте всяка крайна точка

Всяка операция, която SDK може да извика, е описана в справочника на API заедно с нейните параметри, отговори и разрешения.

Справочник за API