दस्तावेज़ पर जाएँ
नॉलेज बेस

टाइप्ड SDK

पहले एक TypeScript क्लाइंट, फिर बाकी।

विवरण

  • npm पर प्रकाशित और उपयोग में। @openemail/sdk एक पूर्ण, निर्भरता-रहित TypeScript क्लाइंट है, जो ESM और CommonJS दोनों के रूप में प्रकाशित है, और जिसमें API द्वारा दिए गए हर प्रलेखित ऑपरेशन के लिए एक मेथड है, साथ ही वे दो अप्रमाणित meta एंडपॉइंट जो किसी क्लाइंट जनरेटर को चाहिए, तथा OPENEMAIL_API_KEY से पढ़ी गई कुंजी, प्रति-प्रयास 30 सेकंड का टाइमआउट, दो रीट्राई, कई वर्कस्पेस संभालने वाली प्रक्रिया के लिए प्रति-कॉल apiKey ओवरराइड, और कर्सर लूप लिखे बिना सूची पेज करने के लिए emails.iterate()। यह Node 18 और उससे ऊपर, Workers, Deno, Bun और ब्राउज़र पर चलता है। ग़लत उपसर्ग वाली कुंजी पहली कॉल पर 401 देने के बजाय निर्माण के समय ही थ्रो कर देती है; जाँच केवल उपसर्ग की है और उससे ज़्यादा कुछ नहीं, इसलिए सही रूप वाली रद्द कुंजी अब भी नेटवर्क पर ही विफल होती है।
  • इसे सर्वर से एक parity जाँच बाँधे रखती है जो हर बिल्ड पर OpenAPI दस्तावेज़ पढ़ती है और दोनों के अलग होते ही विफल हो जाती है: कोई मेथड जो ऐसे ऑपरेशन की ओर इशारा करे जो स्पेक में नहीं है, कोई प्रलेखित ऑपरेशन जिसका कोई मेथड न हो, कोई स्कोप सूची जो ऑपरेशन की ज़रूरी सूची से मेल न खाए, कोई नेमस्पेस जिसमें मेथड हों पर संदर्भ में प्रविष्टि न हो, या कोई मेथड जो अपने ही मैनिफ़ेस्ट में बताया गया अनुरोध न भेजे। यह छापती है कि उसने क्या सिद्ध किया, और आज वह 104 प्रलेखित ऑपरेशनों को कवर करते 116 SDK मेथड बताती है। उसके बगल में दो जनरेटर स्क्रिप्ट खड़ी हैं जो ऐसा कोई ऑपरेशन निकालने से इनकार कर देती हैं जो अवर्गीकृत हो या em dash के साथ लिखा हो। इसीलिए यह क्लाइंट बाद में लिखा गया कोई रैपर नहीं है। यह API से एक रिलीज़ भी पीछे नहीं रह सकता।
  • जो नहीं है वह रिलीज़ की व्यवस्था है। पैकेज npm पर है, इसलिए bun add @openemail/sdk काम करता है, लेकिन कोई रिलीज़ वर्कफ़्लो नहीं है: प्रकाशन का मतलब है preflight, बिल्ड और bun publish को हाथ से चलाना, यानी कोई वर्शन npm पर तब पहुँचता है जब किसी को याद आए, न कि जब बदलाव लैंड हो।जिस API को यह डिफ़ॉल्ट रूप से इस्तेमाल करता है वह चालू है और जवाब दे रहा है।
  • TypeScript ही एकमात्र भाषा है, और बाकी सबके लिए जवाब जानबूझकर OpenAPI दस्तावेज़ है, न कि पाँच हाथ से लिखे क्लाइंट जो अलग-अलग रफ़्तार से पीछे रह जाएँ। रिपॉज़िटरी में कोई Python, Go या Ruby क्लाइंट नहीं है, और जब तक वे इसी दस्तावेज़ से जनरेट न होने लगें तब तक होगा भी नहीं।