# पेजिनेशन रणनीतियाँ — रेस्ट एपीआई डिज़ाइन

Source: https://www.geekswithgeeks.com/hi/restapi/api-pagination

> बड़े कलेक्शन में ऑफ़सेट-आधारित बनाम कर्सर-आधारित पेजिंग।

## ऑफ़सेट पेजिनेशन

`?page=3&limit=20` (या `?offset=40&limit=20`) सरल है और आपको किसी भी पेज पर सीधे जाने देता है। इसकी कीमत: बड़े, बदलते डेटासेट में गहराई के साथ अंतर्निहित `OFFSET` धीमा होता जाता है, और बीच में पंक्तियाँ जुड़ने पर आइटम पेजों के बीच खिसक सकते हैं।

## कर्सर पेजिनेशन

`?after=eyJpZCI6NDgyfQ&limit=20` आखिरी देखी गई आइटम की ओर इशारा करने वाला एक अपारदर्शी कर्सर लौटाता है। यह किसी भी गहराई पर तेज़ रहता है और इंसर्ट के बीच स्थिर रहता है — ट्रेड-ऑफ यह है कि आप सीधे पेज 10 पर नहीं जा सकते।

## पेज नंबर बनाम बुकमार्क

ऑफ़सेट पेजिनेशन किताब में एक पेज नंबर पर कूदने जैसा है — आसान, पर अगर उससे पहले पेज जुड़ जाएँ, तो आप कहीं और पहुँच जाते हैं। कर्सर एक ख़ास वाक्य पर लगा बुकमार्क है — आप हमेशा वहीं से शुरू करते हैं जहाँ छोड़ा था।

## पेज साइज़ की हमेशा सीमा तय करें

क्लाइंट जो भी माँगे, सर्वर-साइड पर अधिकतम `limit` (जैसे 100) लागू करें — वरना `limit=1000000` की एक रिक्वेस्ट आपका डेटाबेस गिरा सकती है।
