Request Method Filtering in Hyperlane
ওয়েব অ্যাপ্লিকেশনগুলো GET, POST এবং DELETE-এর মতো বিভিন্ন HTTP মেথড হ্যান্ডেল করে। Hyperlane আপনাকে এই রিকোয়েস্টগুলো ফিল্টার করার জন্য বেশ কিছু উপায় প্রদান করে। আপনি রিকোয়েস্টগুলোকে নির্দিষ্ট হ্যান্ডলারের কাছে রাউট করতে পারেন অথবা মেথড চেক করার জন্য মিডলওয়্যার ব্যবহার করতে পারেন।
Hyperlane-এ মেথড ফিল্টার করার উপায়গুলো নিচে দেওয়া হলো:
সাধারণ read-only এন্ডপয়েন্টের জন্য
#[is_get_method]ব্যবহার করুন। এই ম্যাক্রোটি GET রিকোয়েস্ট নয় এমন যেকোনো রিকোয়েস্ট প্রত্যাখ্যান করে।নমনীয় রাউটিংয়ের জন্য
#[methods]ব্যবহার করুন। আপনি অনুমোদিত মেথডগুলোর একটি তালিকা পাস করতে পারেন। উদাহরণস্বরূপ,#[methods("GET", "POST")]ডেটা পড়া এবং তৈরি করা—উভয় ক্ষেত্রেই অনুমতি দেয়।জটিল লজিকের জন্য ম্যানুয়াল চেক ব্যবহার করুন। আপনি context থেকে মেথডটি নিতে পারেন এবং কীভাবে রেসপন্স করতে হবে তা নির্ধারণ করতে if-else স্টেটমেন্ট ব্যবহার করতে পারেন।
রুট-লেভেল কন্ট্রোলের জন্য
#[filter]ব্যবহার করুন। একই পাথে (path) বিভিন্ন মেথডের জন্য নির্দিষ্ট হ্যান্ডলার তৈরি করতে আপনি এটিকে রুট ডেফিনিশনের সাথে যুক্ত করতে পারেন।লগিং বা ডিবাগিংয়ের জন্য মিডলওয়্যার ব্যবহার করুন। আপনি মেথডটি এক্সট্র্যাক্ট করতে পারেন এবং এটিকে আপনার রিকোয়েস্ট অ্যাট্রিবিউটে যোগ করতে পারেন।
আপনার API-এর জন্য সেরা অনুশীলনসমূহ (Best practices):
- কোড পরিষ্কার রাখতে read-only কাজের জন্য
#[is_get_method]ব্যবহার করুন। - যখন একটি এন্ডপয়েন্টে একাধিক ধরনের রিকোয়েস্টের প্রয়োজন হয়, তখন
#[methods]ব্যবহার করুন। - ব্যবহারকারী যদি কোনো unsupported মেথড পাঠায়, তবে একটি 405 স্ট্যাটাস কোড রিটার্ন করুন।
- কঠোর নিয়ম তৈরি করতে ফিল্টারগুলো একত্রিত করুন। আপনি মেথড, হোস্ট এবং পাথের দৈর্ঘ্য—সবকিছু একসাথে চেক করতে পারেন।
এই টুলগুলো আপনাকে পরিচ্ছন্ন এবং সুসংগঠিত API তৈরি করতে সাহায্য করে। এগুলো আপনার কোডকে পড়া এবং রক্ষণাবেক্ষণ করা সহজ করে তোলে।
Project Code: https://github.com/hyperlane-dev/hyperlane
Source: https://dev.to/tengxgfyrz67s/request-method-filtering-35jk