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 საიტების ჩამონათვალის სანახავად. გასაღები ნაჩვენებია მხოლოდ ერთხელ; შეინახეთ იგი გარემოს ცვლადში ან თქვენს საიდუმლო საცავში, არასოდეს წყაროს კოდში. თქვენ შეგიძლიათ გააუქმოთ გასაღები ნებისმიერ დროს იმავე გვერდზე.
საჯარო კატალოგის ბოლო წერტილებს (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