पाठ 8 / 27

Filtering, Sorting और Field Selection

Clients को सरल, अनुमानित query parameters से collections और responses संकरे करने दें।

छोटी, एकरूप परिपाटियाँ

Filtering (?status=paid&created_after=2026-09-01), sorting (?sort=-created_at,total, जहाँ - का मतलब अवरोही) और field selection (?fields=id,total) के लिए query parameters उपयोग करें, या संबंधित resources जोड़ने (?expand=customer) के लिए expand parameter, ताकि round trips बचें। सभी collections में नाम और formats एक-से रखें, जिन fields पर clients filter या sort कर सकें उनकी whitelist बनाएँ (और उन्हें index करें), मानों को सख़्ती से validate करें, और defaults दस्तावेज़ित करें। जब तक सचमुच ज़रूरत न हो, अपनी query भाषा न गढ़ें; सरल से शुरू करें और नए वैकल्पिक parameters से बढ़ाएँ, जो backward-compatible बदलाव है।

परिपाटियों वाला अनुरोध

एक अनुरोध filtering, sorting, field selection और paging को जोड़ता है। अज्ञात parameters को चुपचाप अनदेखा करने की जगह साफ़ 400 देना चाहिए।

GET /v2/orders?status=paid&created_after=2026-09-01&sort=-created_at&fields=id,total,customer_id&limit=50

200 OK
{ "data": [ {"id": "ord_91", "total": 1200, "customer_id": "cus_7"}, ... ],
  "next_cursor": "eyJhZnRlciI6ICJvcmRfNDIifQ==" }

असीमित queries की अनुमति न दें

limit की सीमा रखें, sortable fields को indexed तक सीमित करें और तारीख़ों की सीमाएँ बाँधें। एक चतुर अनुरोध पूरा database स्कैन न कर सके।

त्वरित जाँच: `?sort=-created_at` का परिपाटी से क्या मतलब है?

  • आरोही क्रम में sort करें
  • created_at हटाएँ
  • created_at के अवरोही क्रम में sort करें
  • created_at छिपाएँ
Answer

created_at के अवरोही क्रम में sort करें — शुरुआती minus अवरोही क्रम की आम परिपाटी है।