zinn-sdk adalah klien Python resmi kami untuk Zinn Digital® API, yang dipublikasikan di PyPI dan diimpor sebagai zinn_sdk. Klien ini dibuat dari spesifikasi OpenAPI yang sama dengan yang digunakan untuk membangun API, setiap operasi memiliki varian synchronous dan asyncio, dan versi baru akan dipublikasikan secara otomatis setiap kali spesifikasi berubah. Panduan ini menginstalnya, mengautentikasinya, dan melakukan panggilan pertama Anda.
Instal
pip install zinn-sdk
Memerlukan Python 3.11 atau lebih baru dan berlisensi MIT.
Buat kunci API
Buka halaman Kunci API di dasbor Anda (app.zinndigital.com/api-keys) dan tekan Buat kunci. Beri nama pada kunci tersebut dan berikan hanya izin yang diperlukan oleh kode Anda — misalnya sites.view untuk membuat daftar situs. Kunci ini hanya ditampilkan sekali; simpan dalam variabel lingkungan atau penyimpanan rahasia Anda, jangan pernah di dalam kode sumber. Anda dapat mencabut kunci kapan saja di halaman yang sama.
Titik akhir katalog publik, seperti wilayah dan paket hosting, tidak memerlukan kunci sama sekali.
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)
Menemukan operasi
Operasi dikelompokkan berdasarkan area API di bawah zinn_sdk.api dan diberi nama sesuai id operasinya dalam format snake case. Menampilkan daftar situs adalah zinn_sdk.api.hosting.list_sites; domain dan DNS berada di bawah zinn_sdk.api.domains; penagihan di bawah zinn_sdk.api.billing. Referensi API menampilkan id setiap operasi.
Sync, async, dan respons lengkap
Setiap modul operasi memiliki empat fungsi:
sync(...) mengembalikan model yang di-parse, atau None pada status yang tidak diharapkan.
sync_detailed(...) mengembalikan Response dengan status_code, headers, dan parsed.
asyncio(...) dan asyncio_detailed(...) adalah fungsi yang sama, dapat di-await (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 saat Anda perlu membedakan 403 (kunci tidak memiliki izin) dari 404.
Langkah selanjutnya
- Panduan di situs web kami: zinndigital.com/developers/sdk-python
- Setiap endpoint, parameter, dan izinnya: zinndigital.com/developers/api
- Paket di PyPI: pypi.org/project/zinn-sdk