মিডলওয়্যার হল সফ্টওয়্যার উপাদান যা অনুরোধ এবং প্রতিক্রিয়াগুলি পরিচালনা করার জন্য একটি অ্যাপ্লিকেশন পাইপলাইনে একত্রিত হয়৷
প্রতিটি কম্পোনেন্ট বাছাই করে যে, পাইপলাইনে পরবর্তী কম্পোনেন্টে অনুরোধ পাঠানো হবে কিনা এবং পরবর্তী কম্পোনেন্টটি পাইপলাইনে আমন্ত্রণ জানানোর আগে এবং পরে কিছু ক্রিয়া সম্পাদন করতে পারে।
মানচিত্র এক্সটেনশনগুলি পাইপলাইন শাখা করার জন্য নিয়ম হিসাবে ব্যবহৃত হয়৷
ম্যাপ এক্সটেনশন পদ্ধতিটি অনুরোধের স্পাথের উপর ভিত্তি করে অনুরোধ প্রতিনিধিদের সাথে মেলাতে ব্যবহৃত হয়। মানচিত্র সহজভাবে একটি পাথ এবং একটি ফাংশন গ্রহণ করে যা একটি পৃথক মিডলওয়্যার পাইপলাইন কনফিগার করে৷
৷নিম্নলিখিত উদাহরণে, /maptest-এর বেস পাথ সহ যেকোনো অনুরোধ হ্যান্ডেলম্যাপটেস্ট পদ্ধতিতে কনফিগার করা পাইপলাইন দ্বারা পরিচালিত হবে।
উদাহরণ
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 পদ্ধতিটি predicate-ভিত্তিক মিডলওয়্যার শাখাকে সমর্থন করে, যা একটি খুব নমনীয় ফ্যাশনে আলাদা পাইপলাইন তৈরি করার অনুমতি দেয়।
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); }); }
মানচিত্রও নেস্ট করা যেতে পারে
app.Map("/level1", level1App => { level1App.Map("/level2a", level2AApp => { // "/level1/level2a" //... }); level1App.Map("/level2b", level2BApp => { // "/level1/level2b" //... }); });