কম্পিউটার টিউটোরিয়াল

C# ASP.NET WebAPI-এ বিল্ট-ইন মেসেজ হ্যান্ডলারগুলো কী?

একটি মেসেজ হ্যান্ডলার হলো একটি ক্লাস যা HTTP রিকোয়েস্ট গ্রহণ করে এবং HTTP রেসপন্স রিটার্ন করে। মেসেজ হ্যান্ডলারগুলো абস্ট্রাক্ট HttpMessageHandler ক্লাস থেকে ডেরাইভ করা থাকে। মেসেজ হ্যান্ডলারগুলো আমাদের একটি ইনকামিং রিকোয়েস্ট প্রসেস, এডিট, বা অস্বীকার করার সুযোগ দেয় HttpControllerDispatcher-এ পৌঁছানোর আগে।

মেসেজ হ্যান্ডলারগুলো রিকোয়েস্ট প্রসেসিং পাইপলাইনের খুব 이른 স্টেজে এক্সিকিউট হয়, তাই এটি Web API-এ ক্রস-কাটিং কনসার্ন ইমপ্লিমেন্ট করার জন্য একটি চমৎকার জায়গা। মেসেজ হ্যান্ডলারগুলো আসলে ক্লাসের একটি চেইন (সিস্টেম-ডিফাইন বা ইউজার-ডিফাইন) যা HTTP রিকোয়েস্ট এবং রেসপন্স প্রসেস করার পাইপলাইনের পাশে থাকে।

উদাহরণস্বরূপ, একটি HTTP রিকোয়েস্ট HTTP সার্ভারে এসেছে, এখন রিকোয়েস্টটি HandlerA-এ পাস হবে এবং HandlerA-এ প্রসেস হওয়ার পর এটি HandlerB-এ যেতে পারে এবং এমনভাবে চলবে। এখানে সুবিধা হলো আমরা প্রতিটি হ্যান্ডলারের ভিতরে আমাদের বিজনেস नीড অনুযায়ী নির্দিষ্ট কাজ করতে পারি।

ASP.NET Web API ফ্রেমওয়ার্কে, দুটি ধরনের মেসেজ হ্যান্ডলার উপলব্ধ:

  • সার্ভার-सাইড HTTP মেসেজ হ্যান্ডলার
  • ক্লায়েন্ট-सাইড HTTP মেসেজ হ্যান্ডলার

সার্ভার-सাইড মেসেজ হ্যান্ডলার

সার্ভার সাইডে, Web API পাইপলাইন কিছু বিল্ট-ইন মেসেজ হ্যান্ডলার ব্যবহার করে:

  • HttpServer হোস্ট থেকে রিকোয়েস্ট পায়।
  • HttpRoutingDispatcher রুটের ভিত্তিতে রিকোয়েস্ট ডিসপ্যাচ করে।
  • HttpControllerDispatcher রিকোয়েস্টকে একটি Web API কন্ট্রোলারের কাছে পাঠায়।

আমরা কাস্টম হ্যান্ডলার পাইপলাইনে যোগ করতে পারি। মেসেজ হ্যান্ডলার HTTP মেসেজ লেভেলে (কন্ট্রোলার অ্যাকশনের পরিবর্তে) কাজ করা ক্রস-কাটিং কনসার্নের জন্য ভালো। উদাহরণস্বরূপ, একটি মেসেজ হ্যান্ডলার:

  • রিকোয়েস্ট হেডার পড়তে বা মডিফাই করতে পারে।
  • রেসপন্সে রেসপন্স হেডার যোগ করতে পারে।
  • কন্ট্রোলারের কাছে পৌঁছানোর আগে রিকোয়েস্ট ভ্যালিডেট করতে পারে।

ক্লায়েন্ট-सাইড HTTP মেসেজ হ্যান্ডলার

ক্লায়েন্ট সাইডে, HttpClient ক্লাস রিকোয়েস্ট প্রসেস করতে একটি মেসেজ হ্যান্ডলার ব্যবহার করে। ডিফল্ট হ্যান্ডলার হলো HttpClientHandler, যা নেটওয়ার্কের ওপর রিকোয়েস্ট পাঠায় এবং সার্ভার থেকে রেসপন্স পায়। আমরা কাস্টম মেসেজ হ্যান্ডলার ক্লায়েন্ট পাইপলাইনে যোগ করতে পারি।

  1. C# ASP.NET WebAPI-তে Accept Header দিয়ে ভার্সনিং কীভাবে করবেন?

  2. C# ASP.NET WebAPI-তে ফিল্টারের বিভিন্ন প্রকার কী কী?

  3. C# ASP.NET WebAPI-তে CORS সমস্যা সমাধান কীভাবে করবেন?

  4. C# ASP.NET WebAPI-তে কন্ট্রোলার একশনের বিভিন্ন রিটার্ন টাইপ কী কী?