Python SDK

Gerencie sua hospedagem pelo Python

O zinn-sdk é um cliente Python tipificado para a API da Zinn Digital®, gerado a partir da mesma especificação OpenAPI na qual a API é construída. Cada operação possui variantes síncronas e asyncio, e cada solicitação e resposta é um modelo tipificado.

Toda a documentação para desenvolvedores →

Instalar

O pacote está disponível no PyPI como zinn-sdk e é importado como zinn_sdk. Ele requer o Python 3.11 ou posterior.

pip install zinn-sdk

Início rápido

Liste as regiões públicas de hospedagem sem uma chave e, em seguida, liste seus próprios sites com uma.

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)

Autenticação

Endpoints públicos de catálogo, como regiões e planos, não precisam de credenciais. Todo o restante usa uma chave de API por organização passada para o AuthenticatedClient, que a envia como um token de portador. Uma chave carrega apenas as permissões que você concede ao criá-la, e você pode revogá-la a qualquer momento. Mantenha-a em uma variável de ambiente ou em seu cofre de segredos, nunca no código-fonte.

Crie uma chave de API em seu painel

O que você recebe

Modelos tipados

As solicitações e respostas são modelos attrs com dicas de tipo, para que seu editor e seu verificador de tipos compreendam cada campo.

Sincronização e asyncio

Cada operação possui funções sync, sync_detailed, asyncio e asyncio_detailed, nomeadas com base na operação em snake case e agrupadas por área da API em zinn_sdk.api.

Gerado a partir da especificação

Uma nova versão é publicada automaticamente sempre que a especificação da OpenAPI for alterada. As poucas operações que o gerador ainda não consegue expressar são listadas e verificadas a cada lançamento, e continuam disponíveis por meio da REST API.

Chamadas assíncronas

A mesma chamada com asyncio, retornando o status HTTP e também a resposta analisada.

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

Perguntas

Você tem um Python SDK?

Sim. Instale o zinn-sdk do PyPI com pip install zinn-sdk e importe o zinn_sdk. É um cliente tipado gerado a partir de nossa especificação OpenAPI, com chamadas síncronas e asyncio.

Onde está um determinado endpoint no Python SDK?

As operações são agrupadas por área de API sob zinn_sdk.api e nomeadas de acordo com seu ID de operação em snake case. Por exemplo, listar sites é zinn_sdk.api.hosting.list_sites.

Quais versões do Python são suportadas?

Python 3.11 e versões posteriores.

Explorar cada endpoint

Cada operação que o SDK pode chamar está descrita na referência da API, com seus parâmetros, respostas e permissões.

Referência da API