@zinn-digital/sdk Zinn Digital® API के लिए हमारा आधिकारिक TypeScript क्लाइंट है, जो npm पर प्रकाशित है। इसमें मौजूद प्रत्येक पाथ, पैरामीटर और रिस्पॉन्स उसी OpenAPI विनिर्देश से उत्पन्न होता है जिससे API बनाया गया है, और जब भी वह विनिर्देश बदलता है तो एक नया संस्करण स्वचालित रूप से प्रकाशित हो जाता है। यह मार्गदर्शिका इसे इंस्टॉल करती है, इसे प्रमाणित करती है और आपकी पहली कॉल करती है।
इंस्टॉल करें
npm install @zinn-digital/sdk
यह किसी भी ऐसे JavaScript रनटाइम में काम करता है जिसमें fetch मौजूद है: Node.js, ब्राउज़र और एज रनटाइम। इसकी एक रनटाइम निर्भरता है, openapi-fetch, और यह MIT-लाइसेंसीकृत है।
एक API कुंजी बनाएं
अपने डैशबोर्ड का API कुंजियां पृष्ठ (app.zinndigital.com/api-keys) खोलें और कुंजी बनाएं दबाएं। कुंजी को एक नाम दें और केवल वही अनुमतियां दें जिनकी आपके कोड को आवश्यकता है — उदाहरण के लिए साइटों को सूचीबद्ध करने के लिए sites.view। कुंजी केवल एक बार दिखाई जाती है; इसे एक परिवेश चर (environment variable) या अपने सीक्रेट स्टोर में संग्रहीत करें, स्रोत कोड में कभी नहीं। आप उसी पृष्ठ पर किसी भी समय कुंजी को रद्द कर सकते हैं।
सार्वजनिक कैटलॉग एंडपॉइंट्स, जैसे कि होस्टिंग क्षेत्र और योजनाएं, को किसी भी कुंजी की आवश्यकता नहीं होती है।
आपके पहले कॉल्स
import { createApiClient } from "@zinn-digital/sdk";
const api = createApiClient({ baseUrl: "https://api.zinndigital.com" });
// Public catalogue endpoints need no key.
const { data: regions } = await api.GET("/v1/catalog/regions");
console.log(regions?.data.map((r) => r.slug));
// Everything else uses a per-organisation API key.
api.use({
onRequest({ request }) {
request.headers.set("Authorization", `Bearer ${process.env.ZINN_API_KEY}`);
},
});
const { data, error } = await api.GET("/v1/sites", { params: { query: { limit: 5 } } });
if (error) throw new Error(error.error.message);
for (const site of data.data) console.log(site.name, site.status);
इसे ZINN_API_KEY=zdk_live_… npx tsx first-calls.ts के साथ चलाएं। पहली पंक्ति होस्टिंग क्षेत्रों को प्रिंट करती है, फिर प्रति साइट एक पंक्ति।
आपके अपने कोड के लिए प्रकार
स्कीमा प्रकार निर्यात किए जाते हैं, ताकि आपके अपने फ़ंक्शन API के आकारों का उपयोग कर सकें:
import type { components } from "@zinn-digital/sdk";
type Site = components["schemas"]["Site"];
type DnsRecord = components["schemas"]["DnsRecord"];
ग़लत वर्तनी वाला पाथ, पैरामीटर या फ़ील्ड एक कंपाइल त्रुटि है, न कि ऐसा अनुरोध जो चुपचाप गलत काम करता है।
त्रुटियाँ
प्रत्येक कॉल { data, error, response } लौटाती है। गैर-2xx प्रतिक्रिया पर data अपरिभाषित होता है और error API का त्रुटि एनवेलप होता है: error.error.code, एक मानव-पठनीय error.error.message और सत्यापन विफलताओं के लिए, प्रत्येक फ़ील्ड का नाम देने वाला error.error.details। 403 का अर्थ है कि कुंजी में वह अनुमति नहीं है जिसकी एंडपॉइंट को आवश्यकता है — अधिक अनुमति वाली कुंजी का पुन: उपयोग करने के बजाय उस अनुमति के साथ एक कुंजी बनाएँ।
आगे कहाँ जाएँ
- हमारी वेबसाइट पर गाइड: zinndigital.com/developers/sdk-typescript
- प्रत्येक एंडपॉइंट, उसके पैरामीटर और उसकी अनुमति: zinndigital.com/developers/api
- npm पर पैकेज: npmjs.com/package/@zinn-digital/sdk