zinn-sdk shine abokin ciniki na Python na hukuma don Zinn Digital® API, wanda aka buga akan PyPI kuma aka shigo da shi azaman zinn_sdk. An samar da shi daga ƙayyadaddun OpenAPI iri ɗaya da aka gina API ɗin daga ciki, kowane aiki yana da synchronous da kuma asyncio bambance-bambance, kuma ana buga sabon salo ta atomatik a duk lokacin da ƙayyadaddun suka canza. Wannan jagorar tana shigar da shi, tana tabbatar da shi kuma tana yin kiranku na farko.
Shigar
pip install zinn-sdk
Yana buƙatar Python 3.11 ko na gaba kuma yana da lasisin MIT.
Ƙirƙiri maɓallin API
Bude shafin Maɓallan API na allon kula da ayyukanku (app.zinndigital.com/api-keys) sannan ku danna Ƙirƙiri maɓalli. Ba wa maɓallin suna da kuma izini kawai waɗanda lambar sirrinku ke buƙata — misali sites.view don jera shafuka. Ana nuna maɓallin sau ɗaya kawai; adana shi a cikin canjin yanayi (environment variable) ko ma'ajiyar sirrinku, kada ku taɓa saka shi a cikin tushen lambar shirin (source code). Kuna iya soke maɓalli a kowane lokaci a wannan shafin.
Bayanai na buɗaɗɗiyar kasida, kamar yankunan karɓar baƙuncin yanar gizo da tsare-tsare, ba sa buƙatar kowane maɓalli ko kaɗan.
Kiranku na farko
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)
Neman wani aiki
An rarraba ayyuka ta fannin API a ƙarƙashin zinn_sdk.api kuma an sanya musu suna daidai da id na aikinsu a cikin snake case. Jerin shafukan yanar gizo shine zinn_sdk.api.hosting.list_sites; yankuna da DNS suna ƙarƙashin zinn_sdk.api.domains; lissafin kuɗi yana ƙarƙashin zinn_sdk.api.billing. Bayanin API yana nuna id na kowane aiki.
Sync, async da cikakken martani
Kowane ɓangaren aiki yana da ayyuka huɗu:
sync(...) yana dawo da samfurin da aka fassara, ko None kan matsayin da ba a zata ba.
sync_detailed(...) yana dawo da Response mai status_code, headers da parsed.
asyncio(...) da asyncio_detailed(...) iri ɗaya ne, masu jiran aiki.
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())
Yi amfani da bambance-bambancen _detailed lokacin da kuke buƙatar bambanta 403 (mabuɗin ba shi da izini) daga 404.
Inda za a je na gaba
- Jagora a kan gidan yanar gizonmu: zinndigital.com/developers/sdk-python
- Kowane endpoint, sigoginsa da izininsa: zinndigital.com/developers/api
- Kunshin a kan PyPI: pypi.org/project/zinn-sdk