Platform

एरर कैटलॉग क्या है, और एरर कोड को रीट्राई से कैसे मैप करें?

एरर कैटलॉग स्थिर विफलता कोड को दस्तावेज़ित करता है; यह तय करने के लिए उन्हें मैच करें कि फिर से प्रयास करना है या अनुरोध को ठीक करना है।

एक विफल अनुरोध को विलंब, एक सही फ़ील्ड या एक अलग क्रेडेंशियल की ज़रूरत हो सकती है। Bird की त्रुटि प्रतिक्रिया ऐसे फ़ील्ड देती है जिनसे आपका हैंडलर यह कार्रवाई चुन सकता है।

मुझे कौन-से एरर फ़ील्ड उपयोग करने चाहिए?

व्यापक हैंडलिंग के लिए type और विशिष्ट रिकवरी के लिए code का उपयोग करें। Bird इन फ़ील्ड को एक टॉप-लेवल error ऑब्जेक्ट के अंदर रखता है।

type विफलताओं को समूहित करता है जैसे सत्यापन, प्रमाणीकरण और अनुरोध दर सीमित करना। code विशिष्ट विफलता की पहचान करता है, जैसे फ़ील्ड सत्यापन के लिए E01001

Bird कभी किसी कोड का नाम नहीं बदलता और न ही उसे दोबारा उपयोग करता है। रिटायर किए गए कोड आरक्षित रहते हैं, इसलिए मौजूदा कोड मैच अपना अर्थ बनाए रखता है।

message को दिखाएँ या लॉग करें, लेकिन उसके टेक्स्ट को मैच न करें। शब्द बदल सकते हैं बिना उस विफलता को बदले जिसे आपके हैंडलर को संभालना है।

name लॉग को पठनीय बनाता है। doc_url कोड के दस्तावेज़ से लिंक करता है। जब कोई ऑपरेशन विफल हो तो code, name और request_id को एक साथ लॉग करें।

किन विफलताओं को फिर से प्रयास करना चाहिए?

अस्थायी विफलताओं को एक सीमित नीति के साथ फिर से प्रयास करें। दोबारा प्रयास करने से पहले इनपुट और क्रेडेंशियल समस्याओं को ठीक करें। जब एक ही स्टेटस को अलग-अलग कार्रवाई की ज़रूरत हो तो विशिष्ट कोड जाँचें।

प्रतिक्रियाडिफ़ॉल्ट कार्रवाई
429, E01003Retry-After की प्रतीक्षा करें, फिर फिर से प्रयास करें।
500, 502, 503 या 504बढ़ती देरी और प्रयास सीमा के साथ फिर से प्रयास करें।
501रुकें और जाँचें कि सर्वर कौन-सा ऑपरेशन सपोर्ट करता है।
401 या 403फिर से प्रयास करने से पहले क्रेडेंशियल या उसकी अनुमतियाँ ठीक करें।
फ़ील्ड सत्यापन या अमान्य इनपुटप्रतिक्रिया द्वारा पहचाने गए फ़ील्ड ठीक करें।
409, E01004फिर से प्रयास करने से पहले चल रहे ऑपरेशन की प्रतीक्षा करें।
409, E01005अलग इनपुट के साथ idempotency key के दोबारा उपयोग को ठीक करें।

एक ही write को फिर से प्रयास करते समय वही idempotency key रखें। टाइमआउट या सर्वर विफलता यह साबित नहीं करती कि मूल ऑपरेशन ने कुछ नहीं किया।

जब फिर से प्रयास का बजट समाप्त हो जाए तो रुकें और अंतिम एरर रिकॉर्ड करें। अपरिवर्तित अनुरोध को अनिश्चितकाल दोहराना ऐसी विफलता छिपा सकता है जिसमें हस्तक्षेप ज़रूरी है।

फ़ील्ड सत्यापन एरर कैसे हैंडल करें?

E01001 ValidationError पर details ऐरे पढ़ें और प्रत्येक एंट्री को उसके param से जोड़ें। उस एंट्री का message प्रभावित फ़ील्ड के बगल में दिखाएँ।

फ़ील्ड या विफलता पहचानने के लिए उन मैसेज को पार्स न करें। उनके शब्द बदल सकते हैं, ठीक टॉप-लेवल मैसेज की तरह।

एक विकृत अनुरोध इसके बजाय E01002 InvalidRequest लौटा सकता है। यह मानने के बजाय कि हर इनपुट विफलता में फ़ील्ड-लेवल विवरण होते हैं, उसकी दस्तावेज़ित रिकवरी का उपयोग करें।

क्या प्रतिक्रिया मुझे रिकवरी का तरीका बता सकती है?

कुछ एरर में remediation, एक human-readable अगला कदम, या next, प्रयास करने के लिए ऑपरेशनों की क्रमबद्ध सूची शामिल होती है।

जब remediation व्यक्ति को समस्या ठीक करने में मदद करे तो उसे दिखाएँ। उदाहरण के लिए, एक authorization विफलता के लिए अतिरिक्त scope वाले क्रेडेंशियल की ज़रूरत हो सकती है।

एक स्वचालित हैंडलर रिकवरी ऑपरेशन चुनने के लिए next का उपयोग कर सकता है। फिर भी उसे निष्पादित करने से पहले उस ऑपरेशन के इनपुट और अनुमतियों की ज़रूरत होती है।

एक vendor_code डाउनस्ट्रीम विफलता की पहचान करता है, जैसे SMTP प्रतिक्रिया या पेमेंट डिक्लाइन। जब रिकवरी उस प्रोवाइडर पर निर्भर हो तो उसके कोड देखें।

अपरिचित कोड के लिए क्या करना चाहिए?

एक डिफ़ॉल्ट ब्रांच रखें जो बिना क्रैश या अनिश्चितकाल फिर से प्रयास किए विफलता रिकॉर्ड करे। जैसे-जैसे API बढ़ता है, नए कोड और टाइप आ सकते हैं।

जहाँ उचित हो, ज्ञात स्टेटस-आधारित रीट्राई नीति लागू करें। अन्यथा, रुकें और जाँच के लिए कोड को उसकी request ID के साथ लॉग करें।

एरर गाइड त्रुटि प्रतिक्रिया का दस्तावेज़ देता है। एरर रेफ़रेंस व्यक्तिगत कोड और उनकी रिकवरी मार्गदर्शन सूचीबद्ध करता है।

संक्षेप में

  1. मैसेज नहीं, कोड मैच करें।

    Bird एरर कोड का कभी नाम नहीं बदलता और न ही उन्हें दोबारा उपयोग करता है, लेकिन human-readable मैसेज बदल सकते हैं।

  2. अस्थायी विफलताओं को सीमा के साथ फिर से प्रयास करें।

    दर सीमा पर प्रतीक्षा करें और अस्थायी सर्वर विफलताओं पर बैक ऑफ़ करें। दोहराए गए write के लिए वही idempotency key रखें।

  3. सत्यापन विवरण पढ़ें।

    E01001 फ़ील्ड समस्याओं को details में रखता है। प्रत्येक param का उपयोग करके उसके मैसेज को प्रभावित इनपुट से जोड़ें।

  4. अज्ञात एरर के लिए फ़ॉलबैक रखें।

    अपरिचित कोड और उनकी request ID लॉग करें ताकि नई विफलताएँ आपके हैंडलर को न तोड़ें।

व्यवहार में लाएँ।

इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।

इम्प्लीमेंटेशन ब्रीफ़ पाएँ

उसी नेटवर्क पर बनाएँ।

एक टेस्ट API key आपको तुरंत मिल जाती है। भुगतान विधि जोड़ने और सेंडर सत्यापित करने पर प्रोडक्शन अनलॉक होता है।

आपका अगला आइडिया।
जुड़ने के लिए तैयार।