zinn-sdk ialah klien Python rasmi kami untuk Zinn Digital® API, diterbitkan pada PyPI dan diimport sebagai zinn_sdk. Ia dijana daripada spesifikasi OpenAPI yang sama yang digunakan untuk membina API, setiap operasi mempunyai varian segerak dan asyncio, dan versi baharu diterbitkan secara automatik apabila spesifikasi berubah. Panduan ini memasangnya, mengesahkannya dan membuat panggilan pertama anda.
Pasang
pip install zinn-sdk
Ia memerlukan Python 3.11 atau lebih baharu dan dilesenkan di bawah MIT.
Cipta kunci API
Buka halaman Kunci API pada papan pemuka anda (app.zinndigital.com/api-keys) dan tekan Cipta kunci. Berikan nama pada kunci tersebut dan hanya kebenaran yang diperlukan oleh kod anda — contohnya sites.view untuk menyenaraikan tapak. Kunci ini hanya dipaparkan sekali; simpankannya dalam pemboleh ubah persekitaran atau stor rahsia anda, jangan sekali-kali dalam kod sumber. Anda boleh membatalkan kunci pada bila-bila masa di halaman yang sama.
Titik akhir katalog awam, seperti rantau pengehosan dan pelan, tidak memerlukan kunci langsung.
Panggilan pertama anda
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)
Mencari operasi
Operasi dikumpulkan mengikut kawasan API di bawah zinn_sdk.api dan dinamakan mengikut id operasi dalam snake case. Menyenaraikan tapak ialah zinn_sdk.api.hosting.list_sites; domain dan DNS berada di bawah zinn_sdk.api.domains; pengebilan di bawah zinn_sdk.api.billing. Rujukan API menunjukkan id bagi setiap operasi.
Segerak, tak segerak dan respons penuh
Setiap modul operasi mempunyai empat fungsi:
sync(...) mengembalikan model yang dihuraikan, atau None pada status yang tidak dijangka.
sync_detailed(...) mengembalikan Response dengan status_code, headers dan parsed.
asyncio(...) dan asyncio_detailed(...) adalah sama, boleh ditunggu (awaitable).
import asyncio
from zinn_sdk.api.hosting import list_sites
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())
Gunakan varian _detailed apabila anda perlu membezakan 403 (kunci tiada kebenaran) daripada 404.
Ke mana hendak pergi seterusnya
- Panduan di tapak web kami: zinndigital.com/developers/sdk-python
- Setiap titik akhir, parameternya dan kebenarannya: zinndigital.com/developers/api
- Pakej di PyPI: pypi.org/project/zinn-sdk