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.

Alle ontwikkelaarsdocumentatie →

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-sdk

Snelle 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.

Maak een API-sleutel aan in uw dashboard

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.

API-referentie