zinn-sdk este clientul nostru oficial Python pentru API-ul Zinn Digital®, publicat pe PyPI și importat ca zinn_sdk. Este generat din aceeași specificație OpenAPI pe baza căreia este construit API-ul, fiecare operațiune are variante sincrone și asyncio, iar o nouă versiune este publicată automat ori de câte ori specificația se modifică. Acest ghid vă arată cum să îl instalați, să îl autentificați și să efectuați primele dumneavoastră apeluri.
Instalare
pip install zinn-sdk
Necesită Python 3.11 sau o versiune ulterioară și este licențiat MIT.
Creați o cheie API
Deschideți pagina Chei API din panoul dumneavoastră de control (app.zinndigital.com/api-keys) și apăsați pe Creați o cheie. Dați un nume cheii și acordați doar permisiunile de care are nevoie codul dumneavoastră — de exemplu sites.view pentru a lista site-urile. Cheia este afișată o singură dată; stocați-o într-o variabilă de mediu sau în seiful dumneavoastră de secrete, niciodată în codul sursă. Puteți revoca o cheie în orice moment de pe aceeași pagină.
Punctele finale publice din catalog, cum ar fi regiunile de găzduire și planurile, nu necesită nicio cheie.
Primele dumneavoastră apeluri
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)
Găsirea unei operațiuni
Operațiunile sunt grupate în funcție de zona API în zinn_sdk.api și denumite după id-ul operațiunii în snake case. Listarea site-urilor este zinn_sdk.api.hosting.list_sites; domeniile și DNS-ul sunt sub zinn_sdk.api.domains; facturarea sub zinn_sdk.api.billing. Referința API indică id-ul fiecărei operațiuni.
Sincron, asincron și răspunsul complet
Fiecare modul de operațiune are patru funcții:
sync(...) returnează modelul parsat sau None la un status neașteptat.
sync_detailed(...) returnează un Response cu status_code, headers și parsed.
asyncio(...) și asyncio_detailed(...) sunt similare, dar 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())
Utilizați variantele _detailed atunci când trebuie să deosebiți o eroare 403 (cheia nu are permisiune) de o eroare 404.
Unde să mergeți în continuare
- Ghidul de pe site-ul nostru web: zinndigital.com/developers/sdk-python
- Fiecare endpoint, parametrii săi și permisiunea sa: zinndigital.com/developers/api
- Pachetul de pe PyPI: pypi.org/project/zinn-sdk