zinn-sdk Zinn Digital® API üçün PyPI-də dərc edilmiş və zinn_sdk kimi idxal olunan rəsmi Python müştərimizdir. O, API-nin qurulduğu eyni OpenAPI spesifikasiyasından yaradılmışdır, hər bir əməliyyatın sinxron və asyncio variantları var və spesifikasiya hər dəfə dəyişdikdə yeni versiya avtomatik olaraq dərc olunur. Bu bələdçi onu quraşdırır, autentifikasiya edir və ilk çağırışlarınızı həyata keçirir.
Quraşdırın
pip install zinn-sdk
O, Python 3.11 və ya daha sonrakı versiyanı tələb edir və MIT lisenziyalıdır.
API açarı yaradın
İdarəetmə panelinizin API açarları səhifəsini açın (app.zinndigital.com/api-keys) və Açar yarat düyməsini sıxın. Açara ad verin və yalnız kodunuzun ehtiyacı olan icazələri təyin edin — məsələn, saytları sadalamaq üçün sites.view. Açar bir dəfə göstərilir; onu mühit dəyişənində və ya məxfi məlumatlar anbarınızda saxlayın, heç vaxt mənbə kodunda saxlamayın. Açarı istənilən vaxt eyni səhifədə ləğv edə bilərsiniz.
Hostinq bölgələri və planları kimi ictimai kataloq son nöqtələri ümumiyyətlə heç bir açar tələb etmir.
İlk çağırışlarınız
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)
Əməliyyatın tapılması
Əməliyyatlar zinn_sdk.api altında API sahəsinə görə qruplaşdırılır və snake case formatında əməliyyat id-lərinə uyğun adlandırılır. Saytların siyahılanması zinn_sdk.api.hosting.list_sites; domenlər və DNS zinn_sdk.api.domains altında; fakturasiya isə zinn_sdk.api.billing altındadır. API arayışı hər bir əməliyyatın id-sini göstərir.
Sinxron, asinxron və tam cavab
Hər bir əməliyyat modulunda dörd funksiya var:
sync(...) təhlil edilmiş modeli və ya gözlənilməz statusda None qaytarır.
sync_detailed(...) status_code, headers və parsed ilə birgə Response qaytarır.
asyncio(...) və asyncio_detailed(...) eynidir, gözlənilə biləndir (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 (açarda icazə çatışmır) xətasını 404-dən fərqləndirmək lazım olduqda _detailed variantlarından istifadə edin.
Növbəti hara getməli
- Veb saytımızdakı təlimat: zinndigital.com/developers/sdk-python
- Hər bir son nöqtə, onun parametrləri və icazəsi: zinndigital.com/developers/api
- PyPI-dəki paket: pypi.org/project/zinn-sdk