Python SDK

მართეთ თქვენი ჰოსტინგი Python-იდან

zinn-sdk არის ტიპიზებული Python კლიენტი Zinn Digital® API-სთვის, რომელიც გენერირებულია იმავე OpenAPI სპეციფიკაციიდან, რომელზეც აგებულია API. თითოეულ ოპერაციას გააჩნია სინქრონული და asyncio ვარიანტები, ხოლო თითოეული მოთხოვნა და პასუხი წარმოადგენს ტიპიზებულ მოდელს.

დეველოპერის ყველა დოკუმენტაცია →

დაინსტალირება

პაკეტი ხელმისაწვდომია PyPI-ზე, როგორც zinn-sdk და იმპორტირდება, როგორც zinn_sdk. მას ესაჭიროება Python 3.11 ან უფრო ახალი ვერსია.

pip install zinn-sdk

სწრაფი დაწყება

ჩამოთვალეთ ჰოსტინგის საჯარო რეგიონები გასაღების გარეშე, შემდეგ კი ჩამოთვალეთ თქვენი საკუთარი საიტები გასაღებით.

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

შექმენით API გასაღები თქვენს მართვის პანელში

რას იღებთ

ტიპიზებული მოდელები

მოთხოვნები და პასუხები წარმოადგენს ტიპის მინიშნებების მქონე attrs მოდელებს, ასე რომ თქვენს რედაქტორსა და ტიპის შემმოწმებელს ესმით თითოეული ველი.

სინქრონიზაცია და asyncio

თითოეულ ოპერაციას აქვს sync, sync_detailed, asyncio და asyncio_detailed ფუნქციები, რომლებსაც სახელი ოპერაციის მიხედვით snake case-ში აქვთ მინიჭებული და დაჯგუფებულია API-ს არეალის მიხედვით zinn_sdk.api-ს ქვეშ.

გენერირებულია სპეციფიკაციიდან

ახალი ვერსია ავტომატურად ქვეყნდება ყოველ ჯერზე, როდესაც OpenAPI-ის სპეციფიკაცია იცვლება. ის რამდენიმე ოპერაცია, რომელთა ასახვაც გენერატორს ჯერ არ შეუძლია, ჩამოთვლილია და მოწმდება ყოველ გამოშვებაზე და კვლავ ხელმისაწვდომი რჩება REST API-ის მეშვეობით.

ასინქრონული გამოძახებები

იგივე გამოძახება asyncio-ით, რომელიც აბრუნებს HTTP სტატუსს და გაანალიზებულ პასუხს.

import asyncio

from zinn_sdk.api.hosting import list_sites

# Every operation has sync, sync_detailed, asyncio and asyncio_detailed variants.
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())

კითხვები

გაქვთ Python SDK?

დიახ. დააინსტალირეთ zinn-sdk PyPI-დან ბრძანებით pip install zinn-sdk და დააიმპორტეთ zinn_sdk. ეს არის ტიპიზებული კლიენტი, რომელიც გენერირებულია ჩვენი OpenAPI სპეციფიკაციიდან, სინქრონული და asyncio გამოძახებებით.

სად მდებარეობს მოცემული ბოლო წერტილი Python SDK-ში?

ოპერაციები დაჯგუფებულია API-ს არეალის მიხედვით zinn_sdk.api-ს ქვეშ და დასახელებულია მათი ოპერაციის ID-ის (operation id) მიხედვით snake case ფორმატში. მაგალითად, საიტების ჩამოთვლა არის zinn_sdk.api.hosting.list_sites.

Python-ის რომელი ვერსიებია მხარდაჭერილი?

Python 3.11 და შემდგომი ვერსიები.

შეისწავლეთ თითოეული ბოლო წერტილი

ყოველი ოპერაცია, რომლის გამოძახებაც SDK-ს შეუძლია, აღწერილია API-ის დოკუმენტაციაში თავის პარამეტრებთან, პასუხებთან და ნებართვებთან ერთად.

API-ის ცნობარი