zinn-sdk jẹ́ oníbàárà Python tiwa fún Zinn Digital® API, tí a tẹ̀jáde lórí PyPI tí a sì kó wọlé gẹ́gẹ́ bí zinn_sdk. A mú un jáde láti inú ìlànà OpenAPI kan náà tí a fi kọ́ API náà, gbogbo iṣẹ́ ló ní àwọn àyípadà amuṣiṣẹpọ̀ àti asyncio, a sì máa ń tẹ ẹ̀yà tuntun jáde fúnra rẹ̀ nígbàkúgbà tí ìlànà náà bá yípadà. Ìtọ́sọ́nà yìí máa fi sípò, jẹ́rìí sí i, yóò sì ṣe àwọn ìpè àkọ́kọ́ rẹ.
Fí sípò
pip install zinn-sdk
Ó nílò Python 3.11 tàbí èyí tó tẹ̀lé e, ó sì wà lábẹ́ ìwé àṣẹ MIT.
Ṣẹ̀dá kókórọ́ API kan
Ṣí ojú-ewé Àwọn kókórọ́ API ti bọ́ọ̀dù ìdarí yín (app.zinndigital.com/api-keys) kí ẹ sì tẹ Ṣẹ̀dá kókórọ́ kan. Fún kókórọ́ náà ní orúkọ kan àti àwọn àṣẹ tí kóòdù yín nílò nìkan — fún àpẹẹrẹ sites.view láti ṣe àtòjọ àwọn ojú-òpó wẹ́ẹ̀bù. Kókórọ́ náà yóò hàn lẹ́ẹ̀kan ṣoṣo; fi pamọ́ sínú callback àyíká tàbí ibi ìtọ́jú àsírí yín, kì í ṣe sínú kóòdù orísun rárá. Ẹ lè fagilé kókórọ́ kan nígbàkúgbà lórí ojú-ewé kan náà.
Àwọn ibi ìparí àkójọ ìwé gbogbogbò, bíi àwọn agbègbè àlejò àti àwọn ètò, kò nílò kókórọ́ kankan rárá.
Àwọn ìpè àkọ́kọ́ yín
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)
Wiwa isẹ́ kan
A ṣètò àwọn isẹ́ nípasẹ̀ agbègbè API lábẹ́ zinn_sdk.api àti pé a sọ wọ́n lórúkọ nípasẹ̀ operation id wọn ní snake case. Síṣe àkójọ àwọn ojúlé wẹ́ẹ̀bù jẹ́ zinn_sdk.api.hosting.list_sites; àwọn orúkọ ààyè àti DNS wà lábẹ́ zinn_sdk.api.domains; ìsanwó wà lábẹ́ zinn_sdk.api.billing. Ìtọ́kasí API ń fi id isẹ́ kọ̀ọ̀kan hàn.
Sync, async àti èsì kíkún
Kóókó isẹ́ kọ̀ọ̀kan ní àwọn ìgbése mẹ́rin:
sync(...) ń dá àwòṣe tí a ṣàyẹ̀wò padà, tàbí None lórí ipò tí a kò retí.
sync_detailed(...) ń dá Response padà pẹ̀lú status_code, headers àti parsed.
asyncio(...) àti asyncio_detailed(...) jẹ́ bákan náà, wọ́n ṣeé dúró dè (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())
Lo awọn iyatọ _detailed nigbati o ba nilo lati ṣe iyatọ 403 (kọkọrọ naa ko ni aṣẹ) kuro ninu 404.
Nibo ni lati lọ siwaju
- Itọsọna lori oju opo wẹẹbu wa: zinndigital.com/developers/sdk-python
- Gbogbo aaye ipari, awọn paramita rẹ ati aṣẹ rẹ: zinndigital.com/developers/api
- Apo lori PyPI: pypi.org/project/zinn-sdk