zinn-sdk Zinn Digital® API का लागि हाम्रो आधिकारिक Python क्लाइन्ट हो, जुन PyPI मा प्रकाशित गरिएको छ र zinn_sdk को रूपमा आयात गरिन्छ। यो API निर्माण गरिएको उही OpenAPI स्पेसिफिकेसनबाट सिर्जना गरिएको हो, प्रत्येक अपरेसनमा सिङ्क्रोनस र asyncio भेरिएन्टहरू छन्, र स्पेसिफिकेसन परिवर्तन हुँदा नयाँ संस्करण स्वतः प्रकाशित हुन्छ। यो गाइडले यसलाई स्थापना गर्छ, यसलाई प्रमाणीकरण गर्छ र तपाईँका पहिलो कलहरू गर्छ।
स्थापना गर्नुहोस्
pip install zinn-sdk
यसका लागि Python 3.11 वा पछिल्लो संस्करण आवश्यक पर्दछ र यो MIT-इजाजतपत्र प्राप्त छ।
API कुञ्जी सिर्जना गर्नुहोस्
आफ्नो ड्यासबोर्डको API कुञ्जीहरू पृष्ठ खोल्नुहोस् (app.zinndigital.com/api-keys) र कुञ्जी सिर्जना गर्नुहोस् थिच्नुहोस्। कुञ्जीलाई एउटा नाम दिनुहोस् र तपाईंको कोडलाई आवश्यक पर्ने अनुमतिहरू मात्र दिनुहोस् — उदाहरणका लागि साइटहरू सूचीकृत गर्न sites.view। कुञ्जी एक पटक मात्र देखाइन्छ; यसलाई वातावरण चर (environment variable) वा आफ्नो गोप्य भण्डारमा सुरक्षित गर्नुहोस्, स्रोत कोडमा कहिल्यै नराख्नुहोस्। तपाईंले जुनसुकै बेला सोही पृष्ठमा कुञ्जी खारेज गर्न सक्नुहुन्छ।
होस्टिङ क्षेत्रहरू र योजनाहरू जस्ता सार्वजनिक क्याटलगका अन्तिम बिन्दुहरूका लागि कुनै पनि कुञ्जी आवश्यक पर्दैन।
तपाईंका पहिलो कलहरू
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