Python SDK

Steuern Sie Ihr Hosting über Python

zinn-sdk ist ein typisierter Python-Client für die Zinn Digital®-API, der aus derselben OpenAPI-Spezifikation generiert wurde, auf der die API aufbaut. Jede Operation verfügt über synchrone und asyncio-Varianten, und jede Anfrage sowie Antwort ist ein typisiertes Modell.

Alle Entwicklerdokumentationen →

Installieren

Das Paket ist auf PyPI als zinn-sdk verfügbar und wird als zinn_sdk importiert. Es erfordert Python 3.11 oder neuer.

pip install zinn-sdk

Schnellstart

Listen Sie die öffentlichen Hosting-Regionen ohne Schlüssel auf und listen Sie anschließend Ihre eigenen Websites mit einem Schlüssel auf.

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)

Authentifizierung

Öffentliche Katalog-Endpunkte wie Regionen und Pläne erfordern keine Anmeldedaten. Alles andere verwendet einen organisationsspezifischen API-Schlüssel, der an AuthenticatedClient übergeben wird, welcher ihn als Bearer-Token sendet. Ein Schlüssel besitzt nur die Berechtigungen, die Sie ihm bei der Erstellung erteilen, und Sie können ihn jederzeit widerrufen. Bewahren Sie ihn in einer Umgebungsvariablen oder Ihrem Secret-Store auf, niemals im Quellcode.

Erstellen Sie einen API-Schlüssel in Ihrem Dashboard

Was Sie erhalten

Typisierte Modelle

Anfragen und Antworten sind attrs-Modelle mit Typhilfen, sodass Ihr Editor und Ihre Typprüfung jedes Feld verstehen.

Synchronisierung und asyncio

Jede Operation verfügt über die Funktionen sync, sync_detailed, asyncio und asyncio_detailed, die nach der Operation in Snake-Case benannt und nach API-Bereich unter zinn_sdk.api gruppiert sind.

Aus der Spezifikation generiert

Eine neue Version wird automatisch veröffentlicht, sobald sich die OpenAPI-Spezifikation ändert. Die wenigen Operationen, die der Generator noch nicht abbilden kann, werden bei jedem Release aufgelistet und überprüft und bleiben über die REST-API verfügbar.

Asynchrone Aufrufe

Derselbe Aufruf mit asyncio, der sowohl den HTTP-Status als auch die analysierte Antwort zurückgibt.

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())

Fragen

Haben Sie ein Python SDK?

Ja. Installieren Sie zinn-sdk von PyPI mit pip install zinn-sdk und importieren Sie zinn_sdk. Es handelt sich um einen typisierten Client, der aus unserer OpenAPI-Spezifikation generiert wurde, mit synchronen und asyncio-Aufrufen.

Wo befindet sich ein bestimmter Endpunkt im Python SDK?

Operationen sind unter zinn_sdk.api nach API-Bereich gruppiert und nach ihrer Operations-ID in snake case benannt. Das Auflisten von Websites lautet beispielsweise zinn_sdk.api.hosting.list_sites.

Welche Python-Versionen werden unterstützt?

Python 3.11 und neuer.

Jeden Endpunkt erkunden

Jede Operation, die das SDK aufrufen kann, ist in der API-Referenz mit ihren Parametern, Antworten und Berechtigungen beschrieben.

API-Referenz