Python SDK

میزبانی خود را از طریق Python مدیریت کنید

بسته zinn-sdk یک کلاینت تایپ‌شده Python برای ⁦Zinn Digital® API⁩ است که از همان مشخصات 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 ارسال می‌شود و آن را به عنوان یک توکن حامل می‌فرستد. یک کلید فقط شامل مجوزهایی است که هنگام ایجاد به آن اعطا می‌کنید و می‌توانید در هر زمان آن را لغو کنید. آن را در یک متغیر محیطی یا مخزن اسرار خود نگه دارید، هرگز در کد منبع قرار ندهید.

یک کلید API در داشبورد خود ایجاد کنید

آنچه دریافت می‌کنید

مدل‌های نوع‌دار

درخواست‌ها و پاسخ‌ها مدل‌های 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 گروه‌بندی شده‌اند و بر اساس شناسه عملیات (operation id) خود در قالب snake case نام‌گذاری می‌شوند. برای مثال، فهرست کردن سایت‌ها zinn_sdk.api.hosting.list_sites است.

کدام نسخه‌های Python پشتیبانی می‌شوند؟

Python 3.11 و جدیدتر.

کاوش در همه نقاط پایانی

هر عملیاتی که SDK می‌تواند فراخوانی کند، همراه با پارامترها، پاسخ‌ها و مجوزهای مربوط به آن در مرجع API توضیح داده شده است.

مرجع API