Hyperlaneలో Request Method Filtering

వెబ్ అప్లికేషన్లు GET, POST మరియు DELETE వంటి వివిధ HTTP మెథడ్స్‌ను హ్యాండిల్ చేస్తాయి. Hyperlane ఈ రిక్వెస్ట్‌లను ఫిల్టర్ చేయడానికి మీకు అనేక మార్గాలను అందిస్తుంది. మీరు రిక్వెస్ట్‌లను నిర్దిష్ట హ్యాండ్లర్‌లకు రూట్ చేయవచ్చు లేదా మెథడ్స్‌ను తనిఖీ చేయడానికి మిడిల్‌వేర్‌ను ఉపయోగించవచ్చు.

Hyperlaneలో మెథడ్స్‌ను ఫిల్టర్ చేసే మార్గాలు ఇక్కడ ఉన్నాయి:

  • సాధారణ రీడ్-ఓన్లీ (read-only) ఎండ్‌పాయింట్ల కోసం #[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