zinn-sdk-ը մեր պաշտոնական Python հաճախորդն է Zinn Digital® API-ի համար, որը հրապարակված է PyPI-ում և ներմուծվում է որպես zinn_sdk: Այն ստեղծվել է նույն OpenAPI բնութագրից, որից կառուցված է API-ն, յուրաքանչյուր գործողություն ունի synchronous և asyncio տարբերակներ, և նոր տարբերակը հրապարակվում է ավտոմատ կերպով, երբ բնութագիրը փոխվում է: Այս ուղեցույցը տեղադրում է այն, վավերացնում այն և կատարում ձեր առաջին կանչերը:
Տեղադրել
pip install zinn-sdk
Այն պահանջում է Python 3.11 կամ ավելի նոր տարբերակ և ունի MIT լիցենզիա:
Ստեղծել API բանալի
Բացեք ձեր կառավարման վահանակի API բանալիներ էջը (app.zinndigital.com/api-keys) և սեղմեք Ստեղծել բանալի: Տվեք բանալուն անուն և միայն այն թույլտվությունները, որոնք անհրաժեշտ են ձեր կոդին — օրինակ՝ sites.view կայքերը ցուցակագրելու համար: Բանալին ցուցադրվում է միայն մեկ անգամ. պահեք այն միջավայրի փոփոխականում (environment variable) կամ գաղտնիքների ձեր պահոցում, երբեք ոչ սկզբնական կոդում: Դուք կարող եք չեղարկել բանալին ցանկացած պահի նույն էջում:
Հանրային կատալոգի վերջնակետերը (endpoints), ինչպիսիք են հոսթինգի տարածաշրջանները և պլանները, բանալի ընդհանրապես չեն պահանջում:
Ձեր առաջին կանչերը
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)
Գործողության որոնում
Գործողությունները խմբավորված են ըստ API-ի տիրույթի zinn_sdk.api-ի ներքո և անվանված են իրենց գործողության id-ով snake case ձևաչափով։ Կայքերի ցուցակագրումը zinn_sdk.api.hosting.list_sites-ն է․ դոմեյններն ու DNS-ը գտնվում են zinn_sdk.api.domains-ի ներքո, իսկ հաշվարկները՝ zinn_sdk.api.billing-ի ներքո։ API-ի տեղեկատուն ցույց է տալիս յուրաքանչյուր գործողության id-ն։
Sync, async և ամբողջական պատասխանը
Յուրաքանչյուր գործողության մոդուլ ունի չորս ֆունկցիա․
sync(...)-ը վերադարձնում է վերլուծված մոդելը կամ None՝ չնախատեսված կարգավիճակի դեպքում։
sync_detailed(...)-ը վերադարձնում է Response՝ status_code-ով, headers-ով և parsed-ով։
asyncio(...)-ը և asyncio_detailed(...)-ը նույնն են՝ սպասելի (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())
Օգտագործեք _detailed տարբերակները, երբ անհրաժեշտ է տարբերել 403-ը (բանալին չունի թույլտվություն) 404-ից:
Ուր գնալ հաջորդիվ
- Ուղեցույցը մեր կայքում՝ zinndigital.com/developers/sdk-python
- Յուրաքանչյուր վերջնակետ, դրա պարամետրերը և դրա թույլտվությունը՝ zinndigital.com/developers/api
- Փաթեթը PyPI-ում՝ pypi.org/project/zinn-sdk