Hyperlane میں Request Method Filtering
ویب ایپلی کیشنز GET، POST، اور DELETE جیسے مختلف HTTP میتھڈز کو ہینڈل کرتی ہیں۔ Hyperlane آپ کو ان ریکویسٹس کو فلٹر کرنے کے کئی طریقے فراہم کرتا ہے۔ آپ ریکویسٹس کو مخصوص ہینڈلرز کی طرف روٹ کر سکتے ہیں یا میتھڈز کو چیک کرنے کے لیے مڈل ویئر کا استعمال کر سکتے ہیں۔
Hyperlane میں میتھڈز کو فلٹر کرنے کے طریقے درج ذیل ہیں:
سادہ ریڈ-اونلی اینڈ پوائنٹس کے لیے
#[is_get_method]کا استعمال کریں۔ یہ میکرو کسی بھی ایسی ریکویسٹ کو مسترد کر دیتا ہے جو GET ریکویسٹ نہ ہو۔لچکدار روٹنگ کے لیے
#[methods]کا استعمال کریں۔ آپ اجازت یافتہ میتھڈز کی ایک فہرست پاس کر سکتے ہیں۔ مثال کے طور پر،#[methods("GET", "POST")]ڈیٹا کو پڑھنے اور بنانے دونوں کی اجازت دیتا ہے۔پیچیدہ لاجک کے لیے دستی چیک (manual checks) کا استعمال کریں۔ آپ کانٹیکسٹ سے میتھڈ نکال سکتے ہیں اور یہ فیصلہ کرنے کے لیے کہ کیسے جواب دینا ہے، if-else سٹیٹمنٹس کا استعمال کر سکتے ہیں۔
روٹ لیول کنٹرول کے لیے
#[filter]کا استعمال کریں۔ آپ ایک ہی پاتھ پر مختلف میتھڈز کے لیے مخصوص ہینڈلرز بنانے کے لیے اسے روٹ ڈیفینیشنز کے ساتھ ملا سکتے ہیں۔لاگنگ یا ڈیبگنگ کے لیے مڈل ویئر کا استعمال کریں۔ آپ میتھڈ کو نکال کر اسے اپنی ریکویسٹ ایٹریبیوٹس میں شامل کر سکتے ہیں۔
آپ کی API کے لیے بہترین طریقے:
- کوڈ کو صاف ستھرا رکھنے کے لیے ریڈ-اونلی کاموں کے لیے
#[is_get_method]کا استعمال کریں۔ - جب کسی اینڈ پوائنٹ کو ایک سے زیادہ قسم کی ریکویسٹس کی ضرورت ہو تو
#[methods]کا استعمال کریں۔ - اگر صارف کوئی غیر معاون میتھڈ بھیجتا ہے تو 405 اسٹیٹس کوڈ واپس کریں۔
- سخت قوانین بنانے کے لیے فلٹرز کو ملا کر استعمال کریں۔ آپ ایک ہی وقت میں میتھڈ، ہوسٹ، اور پاتھ کی لمبائی کو چیک کر سکتے ہیں۔
یہ ٹولز آپ کو صاف ستھری اور منظم APIs بنانے میں مدد دیتے ہیں۔ یہ آپ کے کوڈ کو پڑھنے اور برقرار رکھنے میں آسان بناتے ہیں۔
Project Code: https://github.com/hyperlane-dev/hyperlane
Source: https://dev.to/tengxgfyrz67s/request-method-filtering-35jk