zinn-sdk በ PyPI ላይ የታተመ እና እንደ zinn_sdk የሚመጣ ለ Zinn Digital® API ይፋዊ የ Python ደንበኛችን ነው። APIው ከተገነባበት ከተመሳሳይ የ OpenAPI መግለጫ የተፈጠረ ነው፣ እያንዳንዱ ክንውን ተከታታይ (synchronous) እና asyncio አማራጮች አሉት፣ እና መግለጫው በተቀየረ ቁጥር አዲስ ስሪት በራስ-ሰር ይታተማል። ይህ መመሪያ ይጭነዋል፣ ያረጋግጠዋል እንዲሁም የመጀመሪያ ጥሪዎችዎን ያደርጋል።
ጫን
pip install zinn-sdk
Python 3.11 ወይም ከዚያ በላይ ያስፈልገዋል እና በMIT ፈቃድ የተሰጠው ነው።
የኤፒአይ ቁልፍ ይፍጠሩ
የዳሽቦርድዎን የኤፒአይ ቁልፎች ገጽ ይክፈቱ (app.zinndigital.com/api-keys) እና ቁልፍ ፍጠርን ይጫኑ። ለቁልፉ ስም እና ኮድዎ የሚፈልጋቸውን ፈቃዶች ብቻ ይስጡ — ለምሳሌ ጣቢያዎችን ለመዘርዘር sites.view። ቁልፉ አንዴ ብቻ ይታያል፤ በአካባቢ ተለዋዋጭ (environment variable) ወይም በሚስጥር ማከማቻዎ ውስጥ ያስቀምጡት፣ በፍጹም በምንጭ ኮድ ውስጥ አያስቀምጡት። በዚያው ገጽ ላይ በማንኛውም ጊዜ ቁልፍን መሰረዝ ይችላሉ።
እንደ ማስተናገጃ ክልሎች እና እቅዶች ያሉ ይፋዊ የካታሎግ የመጨረሻ ነጥቦች ምንም ቁልፍ አያስፈልጋቸውም።
የመጀመሪያ ጥሪዎችዎ
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 መስክ በ zinn_sdk.api ሥር የተመደቡ ሲሆን፣ በ snake case በተጻፈው የክዋኔ መታወቂያቸው (operation id) መሠረት ተሰይመዋል። ድረ-ገጾችን መዘርዘር zinn_sdk.api.hosting.list_sites ነው፤ ጎራዎች እና DNS በ zinn_sdk.api.domains ሥር ናቸው፤ ክፍያ በ zinn_sdk.api.billing ሥር ነው። የ API ማጣቀሻው የእያንዳንዱን ክዋኔ መታወቂያ ያሳያል።
Sync፣ async እና ሙሉ ምላሹ
እያንዳንዱ የክዋኔ ሞጁል አራት ተግባራት አሉት፦
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