zinn-sdk د Zinn Digital® API لپاره زموږ رسمي Python پېرودونکی (کلینټ) دی، چې په PyPI کې خپور شوی او د zinn_sdk په توګه واردېږي. دا د هماغه OpenAPI مشخصاتو څخه جوړ شوی چې API ترې جوړه شوې، هر عملیات هممهاله (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)
د یو عملیات موندل
عملیاتونه د API د برخې له مخې تر zinn_sdk.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(...) یو Response د status_code، headers او parsed سره راګرځوي.
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