zinn-sdk ni kiteja chetu rasmi cha Python cha API ya Zinn Digital®, iliyochapishwa kwenye PyPI na kuletwa kama zinn_sdk. Imetengenezwa kutoka kwa ubainifu uleule wa OpenAPI ambao API imejengwa kwayo, kila operesheni ina lahaja za synchronous na asyncio, na toleo jipya huchapishwa kiotomatiki wakati wowote ubainifu unapobadilika. Mwongozo huu unaisakinisha, unathibitisha na kufanya miito yenu ya kwanza.
Sakinisha
pip install zinn-sdk
Inahitaji Python 3.11 au toleo jipya zaidi na imepewa leseni ya MIT.
Unda ufunguo wa API
Fungua ukurasa wa Vifunguo vya API kwenye dashibodi yako (app.zinndigital.com/api-keys) kisha ubonyeze Unda ufunguo. Upe ufunguo jina na ruhusa zile tu ambazo msimbo wako unahitaji — kwa mfano sites.view ili kuorodhesha tovuti. Ufunguo huonyeshwa mara moja tu; uhifadhi kwenye kibadilika cha mazingira au hifadhi yako ya siri, kamwe usiweke kwenye msimbo wa chanzo. Unaweza kubatilisha ufunguo wakati wowote kwenye ukurasa huo huo.
Vituo vya mwisho vya katalogi ya umma, kama vile maeneo ya upangishaji na mipango, havihitaji ufunguo wowote.
Simu zako za kwanza
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)
Kupata operesheni
Operesheni zimepangwa kulingana na eneo la API chini ya zinn_sdk.api na zimepewa majina kulingana na id ya operesheni yake katika muundo wa snake case. Kuorodhesha tovuti ni zinn_sdk.api.hosting.list_sites; vikoa na DNS viko chini ya zinn_sdk.api.domains; malipo yako chini ya zinn_sdk.api.billing. Rejeleo la API linaonyesha id ya kila operesheni.
Usawazishaji (sync), usiolingana (async) na jibu kamili
Kila moduli ya operesheni ina vitendakazi vinne:
sync(...) hurejesha kielelezo kilichochanganuliwa, au None kukiwa na hali isiyotarajiwa.
sync_detailed(...) hurejesha Response yenye status_code, headers na parsed.
asyncio(...) na asyncio_detailed(...) ni sawa, zinaweza kusubiriwa (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())
Tumia vibadala vya _detailed unapohitaji kutofautisha 403 (ufunguo hauna ruhusa) kutoka kwa 404.
Mahali pa kwenda baadaye
- Mwongozo kwenye tovuti yetu: zinndigital.com/developers/sdk-python
- Kila kituo, vigezo vyake na ruhusa yake: zinndigital.com/developers/api
- Kifurushi kwenye PyPI: pypi.org/project/zinn-sdk