Python SDK

Управляйте своим хостингом с помощью Python

zinn-sdk — это типизированный клиент Python для API Zinn Digital®, созданный на основе той же спецификации 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 и названы в соответствии с их идентификатором операции (operation id) в snake case. Например, получение списка сайтов — это zinn_sdk.api.hosting.list_sites.

Какие версии Python поддерживаются?

Python 3.11 и более поздние версии.

Изучить каждую конечную точку

Каждая операция, которую может вызывать SDK, описана в справочнике по API с указанием ее параметров, ответов и разрешений.

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