Python SDK
Beheer uw hosting vanuit Python
zinn-sdk is een getypeerde Python-client voor de Zinn Digital®-API, gegenereerd op basis van dezelfde OpenAPI-specificatie waarop de API is gebouwd. Elke bewerking heeft synchrone en asyncio-varianten, en elk verzoek en antwoord is een getypeerd model.
Installeren
Het pakket is beschikbaar op PyPI als zinn-sdk en wordt geïmporteerd als zinn_sdk. Het vereist Python 3.11 of nieuwer.
pip install zinn-sdkSnelle start
Geef de openbare hostingregio's weer zonder sleutel en geef vervolgens uw eigen sites weer met een sleutel.
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)Authenticatie
Openbare catalogus-endpoints, zoals regio's en abonnementen, vereisen geen inloggegevens. Al het overige gebruikt een API-sleutel per organisatie die wordt doorgegeven aan AuthenticatedClient, die deze verzendt als een bearer token. Een sleutel bevat alleen de machtigingen die u verleent wanneer u deze aanmaakt, en u kunt deze op elk gewenst moment intrekken. Bewaar deze in een omgevingsvariabele of uw geheime opslag, nooit in de broncode.
Wat u krijgt
Getypeerde modellen
Verzoeken en antwoorden zijn attrs-modellen met typehints, zodat uw editor en uw typecontrole elk veld begrijpen.
Synchronisatie en asyncio
Elke bewerking heeft sync-, sync_detailed-, asyncio- en asyncio_detailed-functies, vernoemd naar de bewerking in snake-case en gegroepeerd per API-gebied onder zinn_sdk.api.
Gegenereerd op basis van de specificatie
Er wordt automatisch een nieuwe versie gepubliceerd telkens wanneer de OpenAPI-specificatie wijzigt. De weinige bewerkingen die de generator nog niet kan uitdrukken, worden bij elke release vermeld en gecontroleerd, en blijven beschikbaar via de REST API.
Asynchrone oproepen
Dezelfde aanroep met asyncio, die zowel de HTTP-status als het verwerkte antwoord retourneert.
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())Vragen
Beschikt u over een Python SDK?
Ja. Installeer zinn-sdk vanaf PyPI met pip install zinn-sdk en importeer zinn_sdk. Het is een getypeerde client gegenereerd op basis van onze OpenAPI-specificatie, met synchrone en asyncio-aanroepen.
Waar bevindt een bepaald eindpunt zich in de Python SDK?
Bewerkingen zijn gegroepeerd per API-gebied onder zinn_sdk.api en vernoemd naar hun bewerkings-id in snake case. Het weergeven van sites is bijvoorbeeld zinn_sdk.api.hosting.list_sites.
Welke Python-versies worden ondersteund?
Python 3.11 en nieuwer.
Verken elk eindpunt
Elke bewerking die de SDK kan aanroepen, wordt beschreven in de API-referentie, inclusief de bijbehorende parameters, antwoorden en machtigingen.