zinn-sdk — bu Zinn Digital® API uchun bizning rasmiy Python mijozimiz boʻlib, PyPI da eʼlon qilingan va zinn_sdk sifatida import qilinadi. U API yaratilgan OpenAPI spetsifikatsiyasi asosida ishlab chiqariladi, har bir operatsiyaning sinxron va asyncio variantlari mavjud hamda spetsifikatsiya oʻzgargan har qanday vaqtda yangi versiya avtomatik ravishda chop etiladi. Ushbu qoʻllanma uni oʻrnatadi, autentifikatsiyadan oʻtkazadi va birinchi chaqiruvlaringizni amalga oshiradi.
Oʻrnatish
pip install zinn-sdk
Unga Python 3.11 yoki undan keyingi versiyasi kerak boʻladi va u MIT litsenziyasiga ega.
API kalitini yaratish
Boshqaruv panelingizdagi API kalitlari sahifasini oching (app.zinndigital.com/api-keys) va Kalit yaratish tugmasini bosing. Kalitga nom bering va faqat kodingizga kerak boʻlgan ruxsatlarni belgilang — masalan, saytlarni roʻyxatlash uchun sites.view. Kalit faqat bir marta koʻrsatiladi; uni muhit oʻzgaruvchisida yoki maxfiy maʼlumotlar omboringizda saqlang, hech qachon dastlabki kodda saqlamang. Kalitni istalgan vaqtda xuddi shu sahifada bekor qilishingiz mumkin.
Xosting mintaqalari va rejalari kabi ommaviy katalog oxirgi nuqtalari (endpoints) uchun hech qanday kalit kerak emas.
Sizning dastlabki chaqiruvlaringiz
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)
Operatsiyani topish
Operatsiyalar zinn_sdk.api ostida API sohasi boʻyicha guruhlangan va ularning operatsiya identifikatori (operation id) boʻyicha snake case uslubida nomlangan. Saytlar roʻyxatini olish zinn_sdk.api.hosting.list_sites; domenlar va DNS zinn_sdk.api.domains ostida; hisob-kitob (billing) esa zinn_sdk.api.billing ostida joylashgan. API maʼlumotnomasi har bir operatsiyaning identifikatorini koʻrsatadi.
Sinxron, asinxron va toʻliq javob
Har bir operatsiya moduli toʻrtta funksiyaga ega:
sync(...) tahlil qilingan modelni yoki kutilmagan holat yuz berganda None qiymatini qaytaradi.
sync_detailed(...) status_code, headers va parsed bilan Response obyektini qaytaradi.
asyncio(...) va asyncio_detailed(...) ham xuddi shunday, kutish mumkin boʻlgan (awaitable) hisoblanadi.
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 (kalitda ruxsat yetishmaydi) xatosini 404 dan ajratish kerak boʻlganda _detailed variantlaridan foydalaning.
Keyingi qadamlar
- Veb-saytimizdagi qoʻllanma: zinndigital.com/developers/sdk-python
- Har bir oxirgi nuqta (endpoint), uning parametrlari va ruxsati: zinndigital.com/developers/api
- PyPI dagi paket: pypi.org/project/zinn-sdk