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