Python SDK

Pilotez votre hébergement avec Python

zinn-sdk est un client Python typé pour l'API Zinn Digital®, généré à partir de la même spécification OpenAPI que celle utilisée pour créer l'API. Chaque opération dispose de variantes synchrones et asyncio, et chaque requête ainsi que chaque réponse est un modèle typé.

Toute la documentation pour les développeurs →

Installer

Le paquet est disponible sur PyPI sous le nom zinn-sdk et s'importe sous le nom zinn_sdk. Il nécessite Python 3.11 ou une version ultérieure.

pip install zinn-sdk

Démarrage rapide

Listez les régions d'hébergement publiques sans clé, puis listez vos propres sites avec une clé.

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)

Authentification

Les points de terminaison du catalogue public, tels que les régions et les forfaits, ne nécessitent aucun identifiant. Tout le reste utilise une clé API par organisation transmise à AuthenticatedClient, qui l'envoie sous forme de jeton porteur. Une clé ne porte que les autorisations que vous lui accordez lors de sa création, et vous pouvez la révoquer à tout moment. Conservez-la dans une variable d'environnement ou dans votre gestionnaire de secrets, jamais dans le code source.

Créez une clé API dans votre tableau de bord

Ce que vous obtenez

Modèles typés

Les requêtes et les réponses sont des modèles attrs avec des indications de type, de sorte que votre éditeur et votre vérificateur de type comprennent chaque champ.

Synchronisation et asyncio

Chaque opération dispose des fonctions sync, sync_detailed, asyncio et asyncio_detailed, nommées d'après l'opération en snake case et regroupées par domaine d'API sous zinn_sdk.api.

Généré à partir de la spécification

Une nouvelle version est publiée automatiquement chaque fois que la spécification OpenAPI est modifiée. Les quelques opérations que le générateur ne peut pas encore exprimer sont répertoriées et vérifiées à chaque version, et restent accessibles via l'API REST.

Appels asynchrones

Le même appel avec asyncio, renvoyant le statut HTTP ainsi que la réponse analysée.

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

Questions

Avez-vous un Python SDK ?

Oui. Installez zinn-sdk depuis PyPI avec pip install zinn-sdk et importez zinn_sdk. Il s'agit d'un client typé généré à partir de notre spécification OpenAPI, avec des appels synchrones et asyncio.

Où se trouve un point de terminaison donné dans le Python SDK ?

Les opérations sont regroupées par domaine d'API sous zinn_sdk.api et nommées d'après leur identifiant d'opération (operation id) en snake case. Par exemple, répertorier les sites correspond à zinn_sdk.api.hosting.list_sites.

Quelles versions de Python sont prises en charge ?

Python 3.11 et versions ultérieures.

Explorer chaque point de terminaison

Chaque opération que le SDK peut appeler est décrite dans la référence de l'API, avec ses paramètres, ses réponses et ses autorisations.

Référence de l'API