Python SDK
נהלו את האחסון שלכם באמצעות Python
zinn-sdk הוא לקוח Python בעל טיפוסים עבור ה-API של Zinn Digital®, שנוצר מאותו מפרט OpenAPI שממנו נבנה ה-API. לכל פעולה יש גרסאות סינכרוניות וגרסאות asyncio, וכל בקשה ותגובה הן מודל בעל טיפוסים.
התקנה
החבילה זמינה ב-PyPI כ-zinn-sdk ומיובאת כ-zinn_sdk. נדרשת גרסת Python 3.11 ומעלה.
pip install zinn-sdkהתחלה מהירה
הציגו את אזורי האחסון הציבוריים ללא מפתח, ולאחר מכן הציגו את האתרים שלכם עם מפתח.
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 לכל ארגון המועבר אל AuthenticatedClient, אשר שולח אותו כאסימון נושא (bearer token). מפתח נושא רק את ההרשאות שאתם מעניקים לו בעת יצירתו, ובאפשרותכם לבטל אותו בכל עת. שמרו אותו במשתנה סביבה או במאגר הסודות שלכם, לעולם לא בקוד המקור.
מה שתקבלו
מודלים בעלי טיפוס
בקשות ותגובות הן מודלים של attrs עם רמזי טיפוסים, כך שעורך הקוד ובודק הטיפוסים שלכם מבינים כל שדה.
סנכרון ו-asyncio
לכל פעולה יש פונקציות sync, sync_detailed, asyncio ו-asyncio_detailed, הנקראות על שם הפעולה ב-snake case ומקובצות לפי אזור API תחת zinn_sdk.api.
נוצר מהמפרט
גרסה חדשה מפורסמת באופן אוטומטי בכל פעם שמפרט ה-OpenAPI משתנה. הפעולות המעטות שהמחולל עדיין אינו יכול לבטא מפורטות ונבדקות בכל גרסה, ונשארות זמינות דרך ה-REST API.
קריאות אסינכרוניות
אותה קריאה באמצעות asyncio, המחזירה את סטטוס ה-HTTP וכן את התגובה המנותחת.
import asyncio
from zinn_sdk.api.hosting import list_sites
# Every operation has sync, sync_detailed, asyncio and asyncio_detailed variants.
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())שאלות
האם יש לכם Python SDK?
כן. התקינו את zinn-sdk מ-PyPI באמצעות pip install zinn-sdk ובצעו ייבוא של zinn_sdk. זהו לקוח מוגדר טיפוסים שנוצר ממפרט ה-OpenAPI שלנו, עם קריאות סינכרוניות וקריאות asyncio.
היכן נמצאת נקודת קצה מסוימת ב-Python SDK?
הפעולות מקובצות לפי אזור ה-API תחת zinn_sdk.api ונקראות על שם מזהה הפעולה שלהן ב-snake case. לדוגמה, הצגת רשימת אתרים היא zinn_sdk.api.hosting.list_sites.
באילו גרסאות Python יש תמיכה?
Python 3.11 ואילך.
חקור כל נקודת קצה
כל פעולה שערכת ה-SDK יכולה להפעיל מתוארת במדריך ה-API, לצד הפרמטרים, התגובות וההרשאות שלה.