Mock पेजिनेशन रिस्पॉन्स

ब्राउज़र में चलता है मॉकिंग

पेजिनेशन की शैली, पेज साइज़ और कुल संख्या चुनें और पहला, बीच का तथा आख़िरी पेज बनाएँ — links, cursor और totals सहित।

केवल टेस्ट डेटा — सभी जनरेट किए गए नाम, संपर्क, पहचानकर्ता और संख्याएँ कृत्रिम हैं और किसी वास्तविक व्यक्ति या खाते से संबंधित नहीं हैं।
गोपनीयता: यह टूल पूरी तरह आपके ब्राउज़र में चलता है। आपका इनपुट कभी आपके डिवाइस से बाहर नहीं जाता।
टूल लोड हो रहा है…

API मॉकिंग क्या है?

मॉक API असली सर्विस की जगह पहले से तय रिस्पॉन्स लौटाता है ताकि फ़्रंटएंड, इंटीग्रेशन या टेस्ट सूट बैकएंड के बनने से पहले या उस पर निर्भर हुए बिना बनाया और चलाया जा सके। अच्छे मॉक असली कॉन्ट्रैक्ट को दोहराते हैं — स्टेटस कोड, हेडर, पेजिनेशन, एरर बॉडी — वरना टेस्ट मॉक पर पास होते हैं और प्रोडक्शन पर फ़ेल।

गाइड पढ़ें: API टेस्टिंग क्या है? REST API कैसे टेस्ट करें

Mock पेजिनेशन रिस्पॉन्स कैसे इस्तेमाल करें

  1. शैली, कुल आइटम संख्या और पेज साइज़ चुनें।
  2. पहला/बीच का/आख़िरी या कोई ख़ास पेज चुनें।
  3. Generate दबाएँ और हर पेज से list, scroll तथा "load more" स्थितियाँ टेस्ट करें।

Mock पेजिनेशन रिस्पॉन्स की खूबियाँ

  • page, offset, cursor, keyset और Link-हेडर वाली पेजिनेशन शैलियाँ
  • एक ही रन में पहला, बीच का और आख़िरी पेज, या कोई भी चुना हुआ पेज
  • पेजों के आर-पार क्रमिक आइटम id और डिकोड होने योग्य base64url cursor
  • links, hasNext/hasPrev फ़्लैग, totals और X-Total-Count हेडर
  • कस्टम आइटम फ़ील्ड और रिसोर्स का नाम; seed लगाया जा सकता है

Mock पेजिनेशन रिस्पॉन्स का उदाहरण

तीन में से दूसरा पेज

इनपुट:

Style: page, total: 25, page size: 10, page: 2

आउटपुट:

{ "data": [ { "id": 11, … }, …, { "id": 20, … } ], "meta": { "page": 2, "pageSize": 10, "total": 25, "totalPages": 3, "hasPrev": true, "hasNext": true }, "links": { "prev": "…?page=1&pageSize=10", "next": "…?page=3&pageSize=10" } }
25 आइटम और 10 प्रति पेज पर पेज 2 में id 11⁠–⁠20 हैं और दोनों लिंक मौजूद हैं; page और offset शैली उसे सीधे माँगती हैं, जबकि keyset और cursor शैली पेज 1 के next लिंक से वहाँ पहुँचती हैं।

उदाहरण: 25 आइटम, पेज साइज़ 10, 3 पेज

पेज

1 2 3

आइटम id

1–10 11–20 21–25 —

prev/next लिंक

next prev + next prev

page-आधारित

page=1 page=2 page=3

offset

offset=0 offset=10 offset=20

keyset

— after_id=10 after_id=20

cursor

— cursor=… ({"id":10,…}) cursor=… ({"id":20,…})

पेज 1 के नीचे डैश: पहली रिक्वेस्ट में after_id या cursor नहीं होता। keyset पेजों में सिर्फ़ next लिंक होता है। हर रिक्वेस्ट पेज साइज़ भी भेजती है (pageSize, limit या per_page); Link-हेडर शैली page शैली की तरह ही पेज माँगती है।

Mock पेजिनेशन रिस्पॉन्स के बारे में अक्सर पूछे जाने वाले सवाल

कौन-कौन सी पेजिनेशन शैलियाँ सपोर्ट हैं?

page-आधारित (page/pageSize/totalPages), offset/limit, cursor (opaque base64url cursor वाला pageInfo), keyset (after_id) और GitHub शैली के Link हेडर।

पहला, बीच का और आख़िरी पेज ही क्यों?

ये वे तीन स्थितियाँ हैं जिन्हें हर क्लाइंट संभालना चाहिए: कोई previous लिंक नहीं, दोनों लिंक मौजूद, और आंशिक रूप से भरा आख़िरी पेज जिसमें next लिंक नहीं होता। किसी और पेज की ज़रूरत हो तो उसे अलग से बनाएँ।

क्या cursor डिकोड किए जा सकते हैं?

हाँ। cursor base64url में एन्कोड किया गया JSON होते हैं, जैसे {"id":10,"dir":"next"}, इसलिए आप उन्हें टेस्ट में देख भी सकते हैं और ख़ुद बना भी सकते हैं।

आइटम id कैसे तय होते हैं?

पेजों के आर-पार क्रम से (10 साइज़ का पेज 2 id 11 से शुरू होता है), ताकि ordering और de-duplication का लॉजिक जाँचा जा सके।

संदर्भ

  • OpenAPI SpecificationOpenAPI InitiativeREST API के वर्णन का मानक: पाथ, ऑपरेशन, पैरामीटर, स्कीमा, रिस्पॉन्स और सिक्योरिटी स्कीम।
  • RFC 9110: HTTP SemanticsIETF · 2022HTTP मेथड, हेडर फ़ील्ड, स्टेटस कोड और कंटेंट निगोशिएशन के अर्थ, वायर वर्ज़न से स्वतंत्र।
  • RFC 8288: Web LinkingIETF · 2017API पेजिनेशन के लिए इस्तेमाल होने वाला Link हेडर और लिंक रिलेशन (next, prev, first, last)।