Hyperlane में Request Method Filtering

वेब एप्लिकेशन GET, POST और DELETE जैसे विभिन्न HTTP मेथड्स को हैंडल करते हैं। Hyperlane आपको इन रिक्वेस्ट को फ़िल्टर करने के कई तरीके देता है। आप रिक्वेस्ट को विशिष्ट हैंडलर्स पर रूट कर सकते हैं या मेथड्स की जाँच करने के लिए मिडलवेयर का उपयोग कर सकते हैं।

Hyperlane में मेथड्स को फ़िल्टर करने के तरीके यहाँ दिए गए हैं:

  • सरल रीड-ओनली एंडपॉइंट्स के लिए #[is_get_method] का उपयोग करें। यह मैक्रो किसी भी ऐसी रिक्वेस्ट को रिजेक्ट कर देता है जो GET रिक्वेस्ट नहीं है।

  • फ्लेक्सिबल रूटिंग के लिए #[methods] का उपयोग करें। आप अनुमत मेथड्स की एक सूची पास कर सकते हैं। उदाहरण के लिए, #[methods("GET", "POST")] डेटा को पढ़ने और बनाने दोनों की अनुमति देता है।

  • जटिल लॉजिक के लिए मैन्युअल चेक का उपयोग करें। आप कॉन्टेक्स्ट से मेथड निकाल सकते हैं और यह तय करने के लिए कि कैसे प्रतिक्रिया देनी है, if-else स्टेटमेंट्स का उपयोग कर सकते हैं।

  • रूट-लेवल कंट्रोल के लिए #[filter] का उपयोग करें। आप एक ही पाथ पर विभिन्न मेथड्स के लिए विशिष्ट हैंडलर्स बनाने के लिए इसे रूट डेफिनिशन के साथ जोड़ सकते हैं।

  • लॉगिंग या डिबगिंग के लिए मिडलवेयर का उपयोग करें। आप मेथड को निकाल सकते हैं और इसे अपने रिक्वेस्ट एट्रिब्यूट्स में जोड़ सकते हैं।

आपके API के लिए सर्वोत्तम अभ्यास:

  • कोड को साफ रखने के लिए रीड-ओनली कार्यों के लिए #[is_get_method] का उपयोग करें।
  • जब किसी एंडपॉइंट को एक से अधिक प्रकार की रिक्वेस्ट की आवश्यकता हो, तो #[methods] का उपयोग करें।
  • यदि कोई उपयोगकर्ता असमर्थित मेथड भेजता है, तो 405 स्टेटस कोड लौटाएं।
  • सख्त नियम बनाने के लिए फ़िल्टर्स को संयोजित करें। आप एक साथ मेथड, होस्ट और पाथ की लंबाई की जाँच कर सकते हैं।

ये टूल्स आपको साफ और व्यवस्थित API बनाने में मदद करते हैं। वे आपके कोड को पढ़ने और बनाए रखने में आसान बनाते हैं।

Project Code: https://github.com/hyperlane-dev/hyperlane

Source: https://dev.to/tengxgfyrz67s/request-method-filtering-35jk