zinn-sdk Zinn Digital® API के लिए हमारा आधिकारिक Python क्लाइंट है, जो PyPI पर प्रकाशित है और zinn_sdk के रूप में आयात किया जाता है। यह उसी OpenAPI विनिर्देश से तैयार किया गया है जिससे API बनाया गया है, प्रत्येक ऑपरेशन में synchronous और asyncio संस्करण होते हैं, और जब भी विनिर्देश बदलता है तो एक नया संस्करण स्वचालित रूप से प्रकाशित होता है। यह गाइड इसे इंस्टॉल करता है, इसे प्रमाणित करता है और आपकी पहली कॉल करता है।
इंस्टॉल करें
pip install zinn-sdk
इसके लिए Python 3.11 या उसके बाद के संस्करण की आवश्यकता है और यह MIT-लाइसेंसीकृत है।
एक API कुंजी बनाएं
अपने डैशबोर्ड का API कुंजियां पृष्ठ (app.zinndigital.com/api-keys) खोलें और कुंजी बनाएं दबाएं। कुंजी को एक नाम दें और केवल वे अनुमतियां दें जिनकी आपके कोड को आवश्यकता है — उदाहरण के लिए साइटों को सूचीबद्ध करने के लिए sites.view। कुंजी केवल एक बार दिखाई जाती है; इसे किसी एनवायरनमेंट वेरिएबल या अपने सीक्रेट स्टोर में सुरक्षित रखें, कभी भी सोर्स कोड में नहीं। आप उसी पृष्ठ पर किसी भी समय कुंजी को रद्द कर सकते हैं।
सार्वजनिक कैटलॉग एंडपॉइंट्स, जैसे होस्टिंग क्षेत्र और योजनाएं, के लिए किसी भी कुंजी की आवश्यकता नहीं होती है।
आपके पहले कॉल्स
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)
किसी ऑपरेशन को खोजना
ऑपरेशनों को zinn_sdk.api के अंतर्गत API क्षेत्र द्वारा समूहीकृत किया गया है और उनके ऑपरेशन id के आधार पर स्नेक केस (snake case) में नाम दिया गया है। साइटों को सूचीबद्ध करना zinn_sdk.api.hosting.list_sites है; डोमेन और DNS zinn_sdk.api.domains के अंतर्गत हैं; बिलिंग zinn_sdk.api.billing के अंतर्गत है। API संदर्भ प्रत्येक ऑपरेशन का id दिखाता है।
सिंक, असिंक और पूर्ण प्रतिक्रिया
प्रत्येक ऑपरेशन मॉड्यूल में चार फ़ंक्शन होते हैं:
sync(...) पार्स किए गए मॉडल को लौटाता है, या किसी अप्रत्याशित स्थिति पर None लौटाता है।
sync_detailed(...) status_code, headers और parsed के साथ एक Response लौटाता है।
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())
जब आपको 403 (कुंजी में अनुमति की कमी है) और 404 के बीच अंतर करने की आवश्यकता हो, तो _detailed वेरिएंट का उपयोग करें।
आगे कहाँ जाएं
- हमारी वेबसाइट पर गाइड: zinndigital.com/developers/sdk-python
- प्रत्येक एंडपॉइंट, उसके पैरामीटर और उसकी अनुमति: zinndigital.com/developers/api
- PyPI पर पैकेज: pypi.org/project/zinn-sdk