zinn-sdk — PyPI-де жарияланған және zinn_sdk ретінде импортталатын Zinn Digital® API үшін біздің ресми Python клиентіміз. Ол API құрастырылған дәл сол OpenAPI сипаттамасынан жасалған, әрбір операцияның synchronous және asyncio нұсқалары бар және сипаттама өзгерген сайын жаңа нұсқа автоматты түрде жарияланады. Бұл нұсқаулық оны орнатады, аутентификациялайды және алғашқы шақыруларыңызды жасайды.
Орнату
pip install zinn-sdk
Оған Python 3.11 немесе одан кейінгі нұсқасы қажет және ол MIT лицензиясына ие.
API кілтін жасау
Бақылау тақтасының API кілттері бетін (app.zinndigital.com/api-keys) ашып, Кілт жасау түймесін басыңыз. Кілтке атау беріңіз және кодыңызға қажетті рұқсаттарды ғана беріңіз — мысалы, сайттар тізімін алу үшін sites.view. Кілт тек бір рет көрсетіледі; оны орта айнымалысында немесе құпия деректер қоймасында сақтаңыз, ешқашан бастапқы кодта сақтамаңыз. Кілтті кез келген уақытта дәл сол бетте қайтарып ала аласыз.
Хостинг аймақтары мен жоспарлары сияқты жалпыға ортақ каталогтың түпкі нүктелеріне кілт мүлдем қажет емес.
Сіздің алғашқы шақыруларыңыз
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)
Операцияны табу
Операциялар zinn_sdk.api ішінде API аймағы бойынша топтастырылған және snake case форматындағы операция id-імен аталған. Сайттар тізімін алу — zinn_sdk.api.hosting.list_sites; домендер мен DNS — zinn_sdk.api.domains бөлімінде; есеп айырысу — zinn_sdk.api.billing бөлімінде. API анықтамалығы әр операцияның id-ін көрсетеді.
Синхронды, асинхронды және толық жауап
Әрбір операция модулінде төрт функция бар:
sync(...) өңделген модельді қайтарады немесе күтпеген күй кезінде None мәнін қайтарады.
sync_detailed(...) функциясы status_code, headers және parsed параметрлері бар Response қайтарады.
asyncio(...) және asyncio_detailed(...) бірдей, бірақ күтуге болады (awaitable).
import asyncio
from zinn_sdk.api.hosting import list_sites
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())
403 қатесін (кілтте рұқсат жоқ) 404 қатесінен ажырату қажет болғанда _detailed нұсқаларын пайдаланыңыз.
Келесі қадамдар
- Біздің веб-сайттағы нұсқаулық: zinndigital.com/developers/sdk-python
- Әрбір түпкі нүкте, оның параметрлері және оның рұқсаты: zinndigital.com/developers/api
- PyPI жүйесіндегі пакет: pypi.org/project/zinn-sdk