Hyperlane ਵਿੱਚ Request Method Filtering

ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ GET, POST, ਅਤੇ DELETE ਵਰਗੇ ਵੱਖ-ਵੱਖ HTTP ਮੈਥਡਸ ਨੂੰ ਸੰਭਾਲਦੀਆਂ ਹਨ। Hyperlane ਤੁਹਾਨੂੰ ਇਹਨਾਂ ਰਿਕੁਐਸਟਾਂ ਨੂੰ ਫਿਲਟਰ ਕਰਨ ਦੇ ਕਈ ਤਰੀਕੇ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ ਰਿਕੁਐਸਟਾਂ ਨੂੰ ਖਾਸ ਹੈਂਡਲਰਾਂ ਵੱਲ ਰੂਟ ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ ਮੈਥਡਸ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਮਿਡਲਵੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।

Hyperlane ਵਿੱਚ ਮੈਥਡਸ ਨੂੰ ਫਿਲਟਰ ਕਰਨ ਦੇ ਤਰੀਕੇ ਇੱਥੇ ਹਨ:

  • ਸਧਾਰਨ ਰੀਡ-ਓਨਲੀ ਐਂਡਪੁਆਇੰਟਸ ਲਈ #[is_get_method] ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਮੈਕਰੋ ਕਿਸੇ ਵੀ ਅਜਿਹੀ ਰਿਕੁਐਸਟ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ ਜੋ GET ਰਿਕੁਐਸਟ ਨਹੀਂ ਹੈ।

  • ਲਚਕਦਾਰ ਰੂਟਿੰਗ ਲਈ #[methods] ਦੀ ਵਰਤੋਂ ਕਰੋ। ਤੁਸੀਂ ਇਜਾਜ਼ਤ ਪ੍ਰਾਪਤ ਮੈਥਡਸ ਦੀ ਇੱਕ ਸੂਚੀ pass ਕਰ ਸਕਦੇ ਹੋ। ਉਦਾਹਰਨ ਲਈ, #[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