Custom Middleware তৈরি

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) রাউটিং এবং Middleware (Routing and Middleware) |
203
203

Middleware হলো ASP.NET Core অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ অংশ, যা HTTP রিকোয়েস্ট এবং রেসপন্স প্রসেসের মধ্যে কোনো একটি অতিরিক্ত কার্যক্রম সম্পাদন করে। Custom Middleware তৈরি করা মানে হলো আপনি আপনার প্রয়োজন অনুযায়ী একটি নতুন middleware কম্পোনেন্ট তৈরি করবেন যা রিকোয়েস্ট এবং রেসপন্স সাইকেলে নিজস্ব লজিক বা কার্যক্রম যোগ করবে।

ASP.NET Core অ্যাপ্লিকেশন ডেভেলপ করার সময় প্রাথমিকভাবে বেশ কিছু বিল্ট-ইন Middleware পাওয়া যায়, যেমন Authentication, Authorization, Caching ইত্যাদি। কিন্তু অনেক সময় কিছু বিশেষ কার্যক্রম সম্পাদনের জন্য কাস্টম Middleware তৈরি করতে হতে পারে।

Custom Middleware তৈরি করার ধাপসমূহ

1. Middleware ক্লাস তৈরি করা

প্রথমে একটি ক্লাস তৈরি করতে হবে যা IMiddleware ইন্টারফেস বা RequestDelegate ব্যবহার করবে।

public class CustomMiddleware
{
    private readonly RequestDelegate _next;

    public CustomMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        // Middleware এর শুরুতে কিছু কার্যক্রম করা
        Console.WriteLine("Request started");

        // রিকোয়েস্ট পরবর্তী Middleware বা রেসপন্স প্রসেসে পাস করা
        await _next(context);

        // Middleware এর শেষে কিছু কার্যক্রম করা
        Console.WriteLine("Response completed");
    }
}

এই কোডে, RequestDelegate হলো পরবর্তী Middleware অথবা রেসপন্স হ্যান্ডলারকে কল করার জন্য ব্যবহার করা হয়। InvokeAsync মেথডে আপনি আপনার কার্যক্রম যোগ করতে পারেন। এখানে আমরা কেবল রিকোয়েস্ট স্টার্ট এবং রেসপন্স কমপ্লিট হওয়ার সময় কনসোলে মেসেজ লিখেছি।

2. Custom Middleware রেজিস্টার করা

আপনার কাস্টম Middleware অ্যাপ্লিকেশনে ব্যবহারের জন্য Startup.cs (বা Program.cs যদি .NET 6+ ব্যবহার করেন) ফাইলে রেজিস্টার করতে হবে। এখানে Configure মেথডে UseMiddleware মেথড ব্যবহার করে Middleware রেজিস্টার করা হয়।

public class Startup
{
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // কাস্টম Middleware রেজিস্টার করা
        app.UseMiddleware<CustomMiddleware>();

        // অন্য বিল্ট-ইন Middleware গুলি
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGet("/", async context =>
            {
                await context.Response.WriteAsync("Hello, world!");
            });
        });
    }
}

এখানে UseMiddleware<CustomMiddleware>() ব্যবহার করে আমাদের কাস্টম Middleware অ্যাপ্লিকেশনে যুক্ত করা হয়েছে। এর মানে হলো, যখন একটি HTTP রিকোয়েস্ট আসবে, তখন সেই রিকোয়েস্ট প্রথমে CustomMiddleware দিয়ে যাবে এবং তারপর অন্যান্য Middleware ও হ্যান্ডলারগুলো কাজ করবে।

3. Custom Middleware এর অন্যান্য বৈশিষ্ট্য

কাস্টম Middleware তৈরি করতে গিয়ে আপনি বিভিন্ন ধরনের কাজ করতে পারেন, যেমন:

  • Logging: রিকোয়েস্ট এবং রেসপন্সের লগ রাখা।
  • Authentication: বিশেষ কোনো অথেনটিকেশন বা অথরাইজেশন চেক করা।
  • Error Handling: এক্সপেশন হ্যান্ডলিং করা।
  • CORS (Cross-Origin Resource Sharing): কাস্টম CORS পলিসি তৈরি করা।

Middleware এর কাজ করার পদ্ধতি

ASP.NET Core অ্যাপ্লিকেশনে Middleware গুলি চেইন আকারে একে অপরের সঙ্গে যুক্ত থাকে। একটি Middleware পরবর্তী Middleware কে কল করার মাধ্যমে পুরো HTTP রিকোয়েস্ট প্রসেস সম্পন্ন হয়।

  • Request Processing: রিকোয়েস্ট যখন আসবে, তখন Middleware গুলি একে একে প্রসেস হবে।
  • Response Processing: রিকোয়েস্ট পরবর্তী রেসপন্স অ্যাপ্লিকেশনের মধ্য দিয়ে ফেরত আসার সময়েও Middleware গুলি রেসপন্স প্রসেস করবে।

Custom Middleware এর ব্যবহার উদাহরণ

ধরা যাক, আপনি যদি একটি কাস্টম Middleware তৈরি করতে চান যা রিকোয়েস্টের হেডার চেক করে দেখবে যে, "X-Api-Key" নামক একটি হেডার আছে কিনা, এবং যদি না থাকে তবে 401 Unauthorized রেসপন্স ফিরিয়ে দেবে।

public class ApiKeyMiddleware
{
    private readonly RequestDelegate _next;

    public ApiKeyMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        if (!context.Request.Headers.ContainsKey("X-Api-Key"))
        {
            context.Response.StatusCode = StatusCodes.Status401Unauthorized;
            await context.Response.WriteAsync("API Key is missing");
            return;
        }

        // API Key রয়েছে, পরবর্তী Middleware এ পাস করা
        await _next(context);
    }
}

এখন, এই Middleware কে Startup.cs-এ রেজিস্টার করলে, আপনি যে কোনো HTTP রিকোয়েস্টে X-Api-Key হেডার না থাকলে 401 Unauthorized রেসপন্স পাবেন।

Custom Middleware এর চ্যালেঞ্জ

  1. Performance Overhead: অতিরিক্ত Middleware ব্যবহার করলে রিকোয়েস্ট প্রসেসিং কিছুটা ধীর হতে পারে।
  2. Order of Middleware: Middleware গুলি সঠিকভাবে সজ্জিত করা গুরুত্বপূর্ণ, কারণ এগুলোর অর্ডার নির্ধারণ করে কিভাবে HTTP রিকোয়েস্ট এবং রেসপন্স প্রসেস হবে।
  3. Error Handling: Middleware গুলোর মধ্যে যদি কোনো এক্সপেশন ঘটে, তবে সেটা ঠিকভাবে হ্যান্ডেল করা উচিত, অন্যথায় পুরো অ্যাপ্লিকেশন ক্র্যাশ হতে পারে।

সারাংশ

Custom Middleware তৈরি করা ASP.NET Core অ্যাপ্লিকেশনের একটি শক্তিশালী বৈশিষ্ট্য, যা আপনাকে অ্যাপ্লিকেশনের HTTP রিকোয়েস্ট প্রসেসে নিজের প্রয়োজনীয় কার্যক্রম যোগ করার সুযোগ দেয়। Middleware তৈরি এবং কনফিগার করার মাধ্যমে আপনি অ্যাপ্লিকেশনের সিকিউরিটি, লগিং, এবং কাস্টম কাজগুলো সম্পন্ন করতে পারেন। Middleware গুলোর সঠিক অর্ডার এবং কার্যক্রম নিশ্চিত করা গুরুত্বপূর্ণ যাতে অ্যাপ্লিকেশন সঠিকভাবে কাজ করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion