Python SDK

Administre su alojamiento web mediante Python

zinn-sdk es un cliente de Python tipado para la API de Zinn Digital®, generado a partir de la misma especificación OpenAPI con la que se compila la API. Cada operación tiene variantes síncronas y de asyncio, y cada solicitud y respuesta es un modelo tipado.

Toda la documentación para desarrolladores →

Instalar

El paquete está disponible en PyPI como zinn-sdk y se importa como zinn_sdk. Requiere Python 3.11 o posterior.

pip install zinn-sdk

Inicio rápido

Enumere las regiones de alojamiento públicas sin una clave y, a continuación, enumere sus propios sitios con una.

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)

Autenticación

Los puntos de conexión del catálogo público, como las regiones y los planes, no necesitan credenciales. Todo lo demás utiliza una clave de API por organización transferida a AuthenticatedClient, que la envía como token de portador. Una clave solo tiene los permisos que usted le concede al crearla, y puede revocarla en cualquier momento. Manténgala en una variable de entorno o en su almacén de secretos, nunca en el código fuente.

Cree una clave de API en su panel de control

Lo que obtiene

Modelos tipados

Las solicitudes y respuestas son modelos attrs con sugerencias de tipo, por lo que su editor y su verificador de tipos entienden cada campo.

Sincronización y asyncio

Cada operación tiene funciones sync, sync_detailed, asyncio y asyncio_detailed, nombradas según la operación en snake case y agrupadas por área de API en zinn_sdk.api.

Generado a partir de la especificación

Se publica una nueva versión automáticamente cada vez que cambia la especificación de OpenAPI. Las pocas operaciones que el generador aún no puede expresar se enumeran y verifican en cada versión, y permanecen disponibles a través de la REST API.

Llamadas asíncronas

La misma llamada con asyncio, que devuelve el estado HTTP y también la respuesta analizada.

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

Preguntas

¿Tiene un Python SDK?

Sí. Instale zinn-sdk desde PyPI con pip install zinn-sdk e importe zinn_sdk. Es un cliente tipado generado a partir de nuestra especificación OpenAPI, con llamadas síncronas y asyncio.

¿Dónde se encuentra un punto de conexión determinado en el Python SDK?

Las operaciones se agrupan por área de API en zinn_sdk.api y se nombran según su id de operación en snake case. Por ejemplo, listar sitios es zinn_sdk.api.hosting.list_sites.

¿Qué versiones de Python son compatibles?

Python 3.11 y versiones posteriores.

Explorar cada punto de conexión

Cada operación que el SDK puede llamar se describe en la referencia de la API, con sus parámetros, respuestas y permisos.

Referencia de API