Sign inGet Started

पेजिनेशन

Bird API का हर पेजिनेटेड सूची एंडपॉइंट एक ही कर्सर-आधारित अनुबंध का उपयोग करता है: वही अनुरोध पैरामीटर, वही प्रतिक्रिया संरचना और कर्सर का वही व्यवहार। इसे GET /v1/email/messages पर एक बार समझ लें, फिर यह हर जगह लागू होता है।

कुछ सीमित संग्रह (जैसे बिलिंग प्लान) बिना किसी पेजिनेशन फ़ील्ड के एक सादा {"data": [...]} ऐरे लौटाते हैं। बाकी एंडपॉइंट पूरा पेजिनेशन अनुबंध लागू करते हैं।

अनुरोध पैरामीटर

पैरामीटरप्रकारविवरण
limitintegerप्रति पेज अधिकतम आइटम। 1 और 100 के बीच; डिफ़ॉल्ट 25 है।
starting_afterस्ट्रिंगपिछली प्रतिक्रिया के next_cursor फ़ील्ड से मिला कर्सर। उस स्थिति के ठीक बाद वाले आइटम लौटाता है।
ending_beforeस्ट्रिंगपिछली प्रतिक्रिया के prev_cursor फ़ील्ड से मिला कर्सर। उस स्थिति के ठीक पहले वाले आइटम लौटाता है।
include_totalबूलियनtrue होने पर प्रतिक्रिया में total गिनती शामिल होती है। डिफ़ॉल्ट false है। यह केवल प्रबंधन एंडपॉइंट पर उपलब्ध है। अधिक मात्रा वाले डेटा एंडपॉइंट (संदेश, इवेंट, सप्रेशन) इसे स्वीकार नहीं करते।

कर्सर अपारदर्शी होते हैं: ये रिसोर्स ID नहीं हैं, और इनका फ़ॉर्मैट कभी भी बदल सकता है। इन्हें प्रतिक्रियाओं से लें और बिना बदले वापस भेजें। गलत या समाप्त हो चुका कर्सर भेजने पर E01012 InvalidCursor कोड वाला 422 लौटता है। ऐसे में बिना कर्सर के पेजिनेशन फिर से शुरू करें।

अधिकांश लिस्ट एंडपॉइंट रिसोर्स के अनुसार sort और order पैरामीटर भी स्वीकार करते हैं; हर एंडपॉइंट का रेफ़रेंस अनुमत सॉर्ट फ़ील्ड बताता है। सॉर्ट बदलने पर पिछले सॉर्ट क्रम के कर्सर अमान्य हो जाते हैं।

प्रतिक्रिया का ढांचा

कोड उदाहरण
{
  "data": [{ "...": "..." }],
  "next_cursor": "WyIyMDI2LTA2LTEwVDA5OjE0OjAzWiIsICJtc2dfMDFr...",
  "prev_cursor": null,
  "refresh_cursor": "WyIyMDI2LTA2LTEwVDEyOjAwOjAwWiIsICJtc2dfMDFr...",
  "total": 1432
}
फ़ील्डविवरण
dataआइटम का पेज।
next_cursorअगला पेज लाने के लिए इसे starting_after के रूप में वापस भेजें। अगला पेज न होने पर यह null होता है, और यही रुकने का संकेत है।
prev_cursorपिछले पेज पर जाने के लिए इसे ending_before के रूप में वापस भेजें। पिछला पेज न होने पर यह null होता है (पहले पेज पर हमेशा null)।
refresh_cursorरीफ़्रेश का आधार बिंदु: इसे सहेजें, फिर बाद में इसे ending_before के रूप में वापस भेजें, ताकि इस प्रतिक्रिया के बाद आए आइटम मिल सकें। जब भी data खाली नहीं होता, यह null नहीं होता।
totalसभी पेजों में अनुरोध के फ़िल्टर से मेल खाने वाले कुल आइटम। यह केवल तब मौजूद होता है जब include_total=true भेजा गया हो; अन्यथा null या अनुपस्थित।

next_cursor और prev_cursor एक-दूसरे से स्वतंत्र हैं: हर एक ठीक तभी null होता है, जब उसकी अपनी दिशा में कोई और पेज नहीं होता। दोबारा फ़ेच करना है या नहीं, यह तय करने के लिए next_cursor जाँचें।

नतीजों के पेजों से गुज़रना

पहले अनुरोध में कोई कर्सर नहीं होता। उसके बाद का हर अनुरोध पिछली प्रतिक्रिया का next_cursor को starting_after के रूप में भेजता है। जब वह null लौटे, तब आप रुक जाते हैं।

हर Bird SDK लिस्ट एंडपॉइंट को दो मोड में उपलब्ध कराता है: लेज़ी इटरेशन, जो आइटम इस्तेमाल करते समय पेज अपने-आप फ़ेच करता है, और सिंगल-पेज एक्सेसर, जिससे आप कर्सर को खुद नियंत्रित करते हैं।

for await (const message of bird.email.list({ status: "bounced" })) {
  console.log(message.id);
}

दर सीमाएँ

लिस्ट एंडपॉइंट पूरे संगठन पर लागू api_list दर-सीमा नीति का उपयोग करते हैं, जब तक ऑपरेशन किसी प्रोडक्ट नीति का नाम न दे। यह क्षमता रिसोर्स प्राप्त करने, लिखने और भेजने की क्षमता से अलग है। लेज़ी इटरेशन हर पेज अनुरोध पर नीति की एक इकाई खर्च करता है। अनुरोधों की संख्या घटाने के लिए एंडपॉइंट द्वारा समर्थित सबसे बड़ा पेज आकार इस्तेमाल करें।

संबंधित

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।