মিডলওয়্যার সফ্টওয়্যার কম্পোনেন্ট যা একটি অ্যাপ্লিকেশন পাইপলাইনে অ্যাসেম্বল করা হয় রিকোয়েস্ট এবং রেসপন্স হ্যান্ডেল করার জন্য।
প্রতিটি কম্পোনেন্ট বেছে নেয় কি রিকোয়েস্টটি পাইপলাইনে পরবর্তী কম্পোনেন্টে পাস করা হবে, এবং পাইপলাইনে পরবর্তী কম্পোনেন্ট আহ্বান করার আগে এবং পরে নির্দিষ্ট ক্রিয়া সম্পাদন করতে পারে।
Map এক্সটেনশন পাইপলাইন ব্রাঞ্চ করার জন্য কনভেনশন হিসেবে ব্যবহৃত হয়।
Map এক্সটেনশন মেথড একটি রিকোয়েস্টের পাথের উপর ভিত্তি করে রিকোয়েস্ট ডেলিগেট ম্যাচ করতে ব্যবহৃত হয়। Map সহজেই একটি পাথ এবং একটি ফাংশন গ্রহণ করে যা একটি পৃথক মিডলওয়্যার পাইপলাইন কনফিগার করে।
নিচের উদাহরণে, /maptest বেস পাথের যেকোনো রিকোয়েস্ট HandleMapTest মেথডে কনফিগার করা পাইপলাইন দ্বারা হ্যান্ডেল করা হবে।
উদাহরণ
private static void HandleMapTest(IApplicationBuilder app)
{
app.Run(async context =>
{
await context.Response.WriteAsync("Map Test Successful");
});
}
public void ConfigureMapping(IApplicationBuilder app)
{
app.Map("/maptest", HandleMapTest);
}
পাথ-ভিত্তিক ম্যাপিংয়ের পাশাপাশি, MapWhen মেথড প্রিডিকেট-ভিত্তিক মিডলওয়্যার ব্রাঞ্চিং সাপোর্ট করে, যা খুব ফ্লেক্সিবলভাবে পৃথক পাইপলাইন নির্মাণের অনুমতি দেয়।
Func
private static void HandleBranch(IApplicationBuilder app)
{
app.Run(async context =>
{
await context.Response.WriteAsync("Branch used.");
});
}
public void ConfigureMapWhen(IApplicationBuilder app)
{
app.MapWhen(context =>
{
return context.Request.Query.ContainsKey("branch");
}, HandleBranch);
app.Run(async context =>
{
await context.Response.WriteAsync("Hello from " + _environment);
});
}
Maps নেস্টেডও হতে পারে:
app.Map("/level1", level1App =>
{
level1App.Map("/level2a", level2AApp =>
{
// "/level1/level2a"
//...
});
level1App.Map("/level2b", level2BApp =>
{
// "/level1/level2b"
//...
});
});