आमतौर पर मैं मेटाडाटा के रूप में परिणाम में रिकॉर्ड की संख्या वापस आ जाएगी। मुझे यकीन नहीं है कि यह सामान्य रीस्ट अभ्यास है, लेकिन यह बहुत अतिरिक्त डेटा नहीं है, और यह बहुत सटीक है। आमतौर पर बहुत सारी सेवाओं के लिए पेजिनेशन होता है, एक ही बार में भारी परिणाम लौटना अव्यावहारिक है। व्यक्तिगत रूप से जब छोटे परिणाम सेट के लिए पृष्ठ पर अंक लगाना होता है, तो मुझे गुस्सा आता है .. यदि यह खाली है, तो number_of_records : 0
खाली सूची / सरणी के रूप में पुस्तकें वापस करें books : []
।
{
meta: {
number_of_records : 2,
records_per_page : 10,
page : 0
},
books : [
{id:1},
{id:27}
]
}
EDIT (कुछ साल बाद): मार्टिन विकमैन का उत्तर बहुत बेहतर है, यहाँ स्पष्टीकरण की "संक्षिप्त" वजह है।
जब अंकुरण के साथ काम करना हमेशा सामग्री या ऑर्डर बदलने की संभावना को ध्यान में रखता है। जैसे, पहला अनुरोध आता है, 24 परिणाम, आप पहले 10. वापस आते हैं। उसके बाद, "नई पुस्तक" डाली जाती है और अब आपके पास 25 परिणाम हैं, लेकिन मूल अनुरोध के साथ यह 10 वें स्थान पर आ जाएगा। जब पहला उपयोगकर्ता 2 पेज का अनुरोध करता है, तो उसे "नई पुस्तक" नहीं मिलेगी। ऐसी समस्याओं को संभालने के तरीके हैं, जैसे "अनुरोध आईडी" प्रदान करना जिसे निम्नलिखित एपीआई कॉल के साथ भेजा जाना चाहिए, फिर अगले पृष्ठ पर "पुराने" परिणाम सेट से लौटना चाहिए, जिसे किसी तरह संग्रहीत किया जाना चाहिए और "अनुरोध आईडी" से बंधा होना चाहिए। वैकल्पिक "पहले अनुरोध के बाद से बदल दी गई परिणाम सूची" जैसे फ़ील्ड को जोड़ना है।
आम तौर पर, यदि आप कर सकते हैं, तो अतिरिक्त प्रयास करने की कोशिश करें और पेजिनेशन से बचें। पृष्ठांकन अतिरिक्त स्थिति है जिसे उत्परिवर्तित किया जा सकता है और इस तरह के परिवर्तनों को ट्रैक करना त्रुटि प्रवण है, और भी अधिक क्योंकि सर्वर और क्लाइंट दोनों को इसे संभालने की आवश्यकता है।
यदि आपके पास एक साथ संसाधित करने के लिए बहुत अधिक डेटा है , तो उस सूची के कुछ भाग के लिए सभी परिणामों और विवरणों के साथ "आईडी सूची" वापस करने पर विचार करें, और संसाधन के लिए बहु_get / get_by_id_list एपीआई कॉल प्रदान करें।