zinn-sdk është klienti ynë zyrtar Python për API-n e Zinn Digital®, i publikuar në PyPI dhe i importuar si zinn_sdk. Ai gjenerohet nga i njëjti specifikim OpenAPI mbi të cilin është ndërtuar API-ja, çdo veprim ka variante sinkrone dhe asyncio, dhe një version i ri publikohet automatikisht sa herë që ndryshon specifikimi. Ky udhëzues e instalon atë, e vërteton dhe kryen thirrjet tuaja të para.
Instaloni
pip install zinn-sdk
Kërkon Python 3.11 ose më të ri dhe është i licencuar sipas MIT.
Krijoni një çelës API
Hapni faqen Çelësat API të panelit tuaj (app.zinndigital.com/api-keys) dhe shtypni Krijoni një çelës. Vendosini çelësit një emër dhe jepini vetëm lejet që i nevojiten kodit tuaj — për shembull sites.view për të listuar faqet. Çelësi shfaqet vetëm një herë; ruajeni atë në një variabël mjedisi ose në depon tuaj të sekreteve, asnjëherë në kodin burimor. Mund ta revokoni një çelës në çdo kohë në të njëjtën faqe.
Pikat përfundimtare të katalogut publik, si rajonet e pritjes dhe planet, nuk kërkojnë fare çelës.
Thirrjet tuaja të para
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)
Gjetja e një operacioni
Operacionet grupohen sipas zonës së API-së nën zinn_sdk.api dhe emërtohen sipas id-së së operacionit të tyre në snake case. Listimi i faqeve është zinn_sdk.api.hosting.list_sites; domenet dhe DNS-ja janë nën zinn_sdk.api.domains; faturimi nën zinn_sdk.api.billing. Referenca e API-së tregon id-në e secilit operacion.
Sinkron, asinkron dhe përgjigjja e plotë
Çdo modul operacioni ka katër funksione:
sync(...) kthen modelin e analizuar, ose None për një status të papritur.
sync_detailed(...) kthen një Response me status_code, headers dhe parsed.
asyncio(...) dhe asyncio_detailed(...) janë e njëjta gjë, të pritshme (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())
Përdorni variantet _detailed kur ju duhet të dalloni një 403 (çelësit i mungon një leje) nga një 404.
Ku të shkoni më tej
- Udhëzuesi në faqen tonë të internetit: zinndigital.com/developers/sdk-python
- Çdo pikë përfundimtare, parametrat dhe leja e saj: zinndigital.com/developers/api
- Paketa në PyPI: pypi.org/project/zinn-sdk