একটি বার্তা হ্যান্ডলার হল একটি ক্লাস যা একটি HTTP অনুরোধ গ্রহণ করে এবং একটি HTTP প্রতিক্রিয়া প্রদান করে। বার্তা হ্যান্ডলাররা বিমূর্ত HttpMessageHandler ক্লাস থেকে প্রাপ্ত। বার্তা হ্যান্ডলাররা আমাদের একটি ইনকামিং অনুরোধ HttpControllerDispatcher-এ পৌঁছানোর আগে প্রক্রিয়া, সম্পাদনা বা প্রত্যাখ্যান করার সুযোগ দেয়।
রিকোয়েস্ট প্রসেসিং পাইপলাইনে মেসেজ হ্যান্ডলারগুলিকে অনেক আগেই এক্সিকিউট করা হয়, তাই তারা ওয়েব API-এ ক্রস কাটিং উদ্বেগগুলি বাস্তবায়নের জন্য একটি দুর্দান্ত জায়গা। মেসেজহ্যান্ডলাররা ক্লাসের একটি শৃঙ্খল ছাড়া আর কিছুই নয় (এটি সিস্টেম দ্বারা সংজ্ঞায়িত বা সংজ্ঞায়িত হতে পারে) যা একটি পাইপলাইনের মাধ্যমে HTTP অনুরোধ এবং প্রতিক্রিয়া প্রক্রিয়ার পাশে বসে।
উদাহরণস্বরূপ, একটি HTTP অনুরোধ একটি HTTP সার্ভারে এসেছে, এখন অনুরোধটি হ্যান্ডলারএ-তে পাঠানো হবে এবং হ্যান্ডলারএ-তে এটি প্রক্রিয়া করার পরে, এটি হ্যান্ডলারবি-তে যেতে পারে এবং আরও অনেক কিছু। এখন, এখানে সুবিধা হল যে আমরা আমাদের ব্যবসার প্রয়োজনের উপর নির্ভর করে প্রতিটি হ্যান্ডলারের মধ্যে নির্দিষ্ট কাজ সম্পাদন করতে পারি।
ASP.NET ওয়েব API ফ্রেমওয়ার্কে, দুই ধরনের বার্তা হ্যান্ডলার পাওয়া যায়। সেগুলি নিম্নরূপ৷
- সার্ভার-সাইড HTTP বার্তা হ্যান্ডলার
- ক্লায়েন্ট-সাইড HTTP মেসেজ হ্যান্ডলার
সার্ভার-সাইড মেসেজ হ্যান্ডলার
সার্ভারের দিকে, ওয়েব API পাইপলাইন কিছু অন্তর্নির্মিত বার্তা হ্যান্ডলার ব্যবহার করে −
- HttpServer হোস্ট থেকে অনুরোধ পায়।
- HttpRoutingDispatcher৷ রুটের উপর ভিত্তি করে অনুরোধ প্রেরণ করে।
- HttpControllerDispatcher একটি ওয়েব API কন্ট্রোলারের কাছে অনুরোধ পাঠায়।
আমরা পাইপলাইনে কাস্টম হ্যান্ডলার যোগ করতে পারি। বার্তা হ্যান্ডলারগুলি ক্রসকাটিং উদ্বেগের জন্য ভাল যা HTTP বার্তাগুলির স্তরে কাজ করে (নিয়ন্ত্রক ক্রিয়াকলাপের পরিবর্তে)। উদাহরণস্বরূপ, একটি বার্তা হ্যান্ডলার −
হতে পারে- অনুরোধের শিরোনাম পড়ুন বা সংশোধন করুন।
- প্রতিক্রিয়ায় একটি প্রতিক্রিয়া শিরোনাম যোগ করুন।
- নিয়ন্ত্রকের কাছে পৌঁছানোর আগে অনুরোধগুলি যাচাই করুন৷
ক্লায়েন্ট-সাইড HTTP বার্তা হ্যান্ডলার
ক্লায়েন্টের দিকে, HttpClient ক্লাস অনুরোধ প্রক্রিয়া করার জন্য একটি বার্তা হ্যান্ডলার ব্যবহার করে। ডিফল্ট হ্যান্ডলার হল HttpClientHandler , যা নেটওয়ার্কে অনুরোধ পাঠায় এবং সার্ভার থেকে প্রতিক্রিয়া পায়। আমরা ক্লায়েন্ট পাইপলাইনে কাস্টম বার্তা হ্যান্ডলার সন্নিবেশ করতে পারি।