وہ HTTP میتھڈ جسے ہم 16 سالوں سے غلط طریقے سے استعمال کر رہے ہیں
بیک اینڈ ڈویلپرز کو سرچ اینڈ پوائنٹس (search endpoints) کے ساتھ ایک مستقل مسئلے کا سامنا رہتا ہے۔
آپ GET استعمال کرنا چاہتے ہیں کیونکہ سرچ کرنا ایک 'ریڈ آپریشن' (read operation) ہے۔ لیکن آپ کے سرچ فلٹرز بہت بڑے ہوتے جاتے ہیں۔ آپ کا URL دو ہزار حروف تک پہنچ جاتا ہے۔ پراکسیز (Proxies) آپ کی درخواست کو ادھورا کر دیتے ہیں۔ آپ کی سرچ کام کرنا چھوڑ دیتی ہے۔
آپ حد (limit) کو ٹھیک کرنے کے لیے POST پر منتقل ہو جاتے ہیں۔ یہ کام تو کرتا ہے، لیکن یہ ایک جھوٹ ہے۔ POST ہر پراکسی اور کیش (cache) کو بتاتا ہے کہ آپ ڈیٹا تبدیل کر رہے ہیں۔ اس سے تمام کیشنگ (caching) رک جاتی ہے۔ آپ GET کی رفتار کھو دیتے ہیں۔
سولہ سالوں تک، ہمارے پاس کوئی درمیانی راستہ نہیں تھا۔
جون 2026 میں، IETF نے RFC 10008 شائع کیا۔ یہ QUERY میتھڈ متعارف کرواتا ہے۔ یہ 2010 کے بعد پہلا نیا HTTP میتھڈ ہے۔
QUERY، GET اور POST کے بہترین حصوں کا مجموعہ ہے:
• یہ پیچیدہ فلٹرز کے لیے ایک 'ریکویسٹ باڈی' (request body) لے کر چلتا ہے۔ • یہ محفوظ (safe) ہے، یعنی سرور اسٹیٹ (state) تبدیل نہیں کرتا۔ • یہ idempotent ہے، یعنی آپ اسے ایک ہی نتیجے کے ساتھ دو بار چلا سکتے ہیں۔ • یہ کیش ایبل (cacheable) ہے، جو CDNs کو رسپانسز اسٹور کرنے کی اجازت دیتا ہے۔
ایک QUERY درخواست ایسی دکھتی ہے:
QUERY /products HTTP/1.1
Host: api.shop.example
Content-Type: application/json
{
"filter": { "category": "boots", "inStock": true },
"sort": "-price",
"limit": 20
}
نیا RFC 'Accept-Query' ہیڈر بھی شامل کرتا ہے۔ یہ ایک API کو یہ بتانے کی اجازت دیتا ہے کہ وہ کن کوئری فارمیٹس (query formats) کو سپورٹ کرتی ہے۔
ڈویلپرز کے لیے ایک انتباہ:
QUERY درخواست کو کیش کرنا GET درخواست سے مختلف ہے۔ GET کیش URL کو بطور 'کی' (key) استعمال کرتا ہے۔ QUERY کیش کو 'ریکویسٹ باڈی' کو بطور 'کی' کا حصہ استعمال کرنا چاہیے۔ اگر آپ کا انفراسٹرکچر اسے نہیں سمجھتا، تو ایک صارف دوسرے صارف کے نجی سرچ نتائج دیکھ سکتا ہے۔
ابھی اسے پروڈکشن (production) میں استعمال کرنے کی جلدی نہ کریں۔ ایکوسسٹم (ecosystem) کو اس کے ساتھ چلنے کے لیے وقت درکار ہے۔
• براؤزرز ابھی fetch() میں QUERY کو سپورٹ نہیں کرتے۔
• HTML فارمز صرف GET اور POST کو سپورٹ کرتے ہیں۔
• بہت سے API گیٹ ویز (gateways) اور WAFs نامعلوم میتھڈز کو مسترد کر دیں گے۔
اپنی API کو QUERY کو ذہن میں رکھتے ہوئے ڈیزائن کریں، لیکن فی الحال اپنے POST اینڈ پوائنٹس برقرار رکھیں۔
QUERY ایک طویل سمجھوتے کا خاتمہ کرتا ہے۔ یہ آپ کو نیٹ ورک سے جھوٹ بولے بغیر پیچیدہ سوالات پوچھنے کی اجازت دیتا ہے۔
کیا آپ ایکوسسٹم کے ساتھ چلنے کا انتظار کر رہے ہیں، یا آپ ابھی QUERY کی ٹیسٹنگ کر رہے ہیں؟
Source: https://dev.to/arya_koste_5845807df94776/query-the-http-method-weve-been-faking-for-16-years-f9i
