Idempotency-Key हेडर
Bird API, Idempotency-Key हेडर के ज़रिए अनुरोधों का वैकल्पिक डीडुप्लिकेशन प्रदान करता है। यह पृष्ठ HTTP अनुबंध बताता है; फिर से प्रयास करने की रणनीति के लिए इडेम्पोटेंसी देखें।
अनुरोध हेडर
| हेडर | प्रतिबंध |
|---|---|
| Idempotency-Key | वैकल्पिक। 255 वर्णों तक की कोई भी गैर-खाली स्ट्रिंग; UUID v4 की सलाह दी जाती है। समर्थित POST, PATCH, PUT और DELETE ऑपरेशन में लागू होता है; GET, HEAD और OPTIONS में अनदेखा किया जाता है। |
वर्कस्पेस और संगठन के दायरे वाले बदलाव करने वाले ऑपरेशन नीचे बताई गई प्रतिक्रिया को दोबारा लौटाने की सुविधा का समर्थन करते हैं। केवल उपयोगकर्ता के दायरे वाले ऑपरेशन, बिना किसी दायरे के अप्रमाणित ऑपरेशन और स्ट्रीम इस सुविधा का उपयोग नहीं करते। जिन ऑपरेशन का प्रतिक्रिया दोबारा लौटाने का अलग अनुबंध है, उनका व्यवहार उनके संदर्भ पृष्ठ पर बताया गया है।
हेडर छोड़ने या खाली मान भेजने पर अनुरोध सामान्य रूप से, बिना डीडुप्लिकेशन के संसाधित होता है। इस हेडर को घोषित करने वाले एंडपॉइंट पर 255 वर्णों से लंबी कुंजी भेजने पर E01001 ValidationError कोड के साथ 422 लौटता है।
कुंजियाँ आपके वर्कस्पेस के दायरे में, या संगठन-स्तरीय एंडपॉइंट पर आपके संगठन के दायरे में होती हैं और लगभग 3 घंटे तक रखी जाती हैं। यह अवधि बीतने के बाद उसी कुंजी का दोबारा उपयोग करने वाला अनुरोध नए अनुरोध के रूप में संसाधित होता है।
रिस्पॉन्स सिमैंटिक्स
| परिदृश्य | रिस्पॉन्स |
|---|---|
| किसी की के साथ पहला अनुरोध | सामान्य रूप से संसाधित होता है; पूरी हो चुकी प्रतिक्रिया दोबारा लौटाने के लिए रखी जा सकती है; 5xx प्रतिक्रियाएँ नहीं रखी जातीं। |
| वही की, समान अनुरोध | मूल स्टेटस और बॉडी रीप्ले होती है, Idempotency-Replay: true रिस्पॉन्स हेडर के साथ। |
| वही की, अलग अनुरोध | E01005 IdempotencyKeyReuse के साथ 409। नए अनुरोध के लिए नई की जनरेट करें। |
| वही की, मूल अनुरोध अभी भी फ़्लाइट में | E01004 RequestInProgress के साथ 409। लॉक ~30 सेकंड में एक्सपायर होता है; प्रतीक्षा करें और फिर से प्रयास करें। |
| मूल अनुरोध ने 5xx लौटाया | कैश नहीं होता: की अनलॉक होती है और रीट्राई ताज़ा प्रोसेस होती है। |
| निष्पादन से पहले idempotency सुरक्षा अनुपलब्ध | E01033 IdempotencyUnavailable के साथ 503। यह प्रयास निष्पादित नहीं हुआ; उसी की और अनुरोध के साथ फिर से प्रयास करें। |
रीप्ले किया गया रिस्पॉन्स बाइट-दर-बाइट मूल के समान होता है (वही स्टेटस कोड, वही बॉडी), केवल अतिरिक्त हेडर से पहचाना जाता है:
कोड उदाहरण
HTTP/1.1 202 Accepted
Idempotency-Replay: true"Identical request" में मेथड, एंडपॉइंट, पाथ और क्वेरी पैरामीटर तथा अनुरोध की मूल बॉडी शामिल हैं। इन मानों में अंतर, जिसमें JSON का व्हाइटस्पेस भी शामिल है, E01005 उत्पन्न करता है। मल्टीपार्ट अपलोड में हिस्सों के नाम, फ़ाइलों के नाम और सामग्री की तुलना होती है; हिस्सों की सीमाएँ और क्रम प्रतिक्रिया दोबारा लौटाने पर असर नहीं डालते। दोनों 409 त्रुटियाँ मानक त्रुटि प्रतिक्रिया के रूप में आती हैं।
रखी गई प्रतिक्रियाओं में 4xx अस्वीकृतियाँ शामिल हो सकती हैं। अनुरोध सुधारते समय नई कुंजी का उपयोग करें: यदि उसकी अस्वीकृति रखी गई थी, तो बिना बदलाव के फिर से प्रयास करने पर वही प्रतिक्रिया लौटती है, और बदला हुआ अनुरोध 409 E01005 IdempotencyKeyReuse लौटाता है।
5xx रिस्पॉन्स कभी कैश नहीं होते। बैकऑफ़ के साथ उसी की और अनुरोध का उपयोग करके फिर से प्रयास करें। E01033 IdempotencyUnavailable का मतलब है कि यह प्रयास निष्पादित नहीं हुआ; यह किसी पहले के प्रयास के परिणाम का वर्णन नहीं करता। हर रीट्राई पर की बनाए रखें।
कोई ऑपरेशन अपना रिस्पॉन्स रिटेन होने से पहले प्रभावी हो सकता है। यदि वह रिस्पॉन्स खो जाता है, या इन-फ़्लाइट लॉक एक्सपायर हो जाता है, तो रीट्राई ऑपरेशन को फिर से निष्पादित कर सकती है। इसलिए टाइमआउट या कोई अन्य 5xx रिस्पॉन्स यह साबित नहीं करता कि ऑपरेशन का कोई प्रभाव नहीं हुआ।
SDK व्यवहार
आधिकारिक SDK हर म्यूटेटिंग अनुरोध में एक ऑटो-जनरेटेड UUID Idempotency-Key जोड़ते हैं, जो प्रति लॉजिकल कॉल एक बार जनरेट होता है और उस कॉल के सभी रीट्राई प्रयासों में पुन: उपयोग होता है। जब एक लॉजिकल ऑपरेशन कई SDK कॉल में फैला हो, तो आप प्रति कॉल अपनी खुद की की दे सकते हैं (TypeScript में idempotencyKey, Go में option.WithIdempotencyKey, Python में idempotency_key)। रीप्ले का पता लगाने के लिए, प्रत्येक SDK के ट्रांसपोर्ट-मेटाडेटा एक्सेसर से Idempotency-Replay रिस्पॉन्स हेडर पढ़ें: TypeScript में .withResponse(), Go में option.WithResponseInto, और Python में with_raw_response।
संबंधित
- Idempotency अवधारणाएँ: फिर से प्रयास करने की रणनीति, की डिज़ाइन, और रीप्ले सीमाएँ
- त्रुटि प्रतिक्रियाएँ: E01004 और E01005 को रैप करने वाला एन्वेलप
- ईमेल संदेश: सेंड एंडपॉइंट, की का सबसे सामान्य उपयोग स्थान
- SDK अवधारणाएँ: स्वचालित की जनरेशन और रीट्राई
संबंधित संसाधन
इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।
कॉन्सेप्ट समझेंShould I use a Bird SDK or call the API directly?लर्निंग पाथ फ़ॉलो करेंBuild your first integrationइम्प्लीमेंटेशन गाइडSend your first email
इम्प्लीमेंटेशन ब्रीफ़ पाएँ