Map middleware ne işe yarar ?
Gelen path'e göre Use veya Run metodunu çalıştırmamıza sağlar.
Örnek :
a.) Boş bir model-view-controller projesi yaratalım.
b.) Startup.cs içindeki Configure metodunun içini silip aşağıdaki kodları yapıştıralım.
app.Map("/map", config => { config.Run(async context => { await context.Response.WriteAsync("Bu Run middleware den sonraski middleware calismayacak. Ve geriye donuyor.."); }); }); app.Use(async (context, next) => { await context.Response.WriteAsync(Environment.NewLine + "Bu middleware Use middleware'idir pipelini going" + Environment.NewLine); await next(); await context.Response.WriteAsync(Environment.NewLine + "Bu middleware Use middleware'idir pipelini incoming/n" + Environment.NewLine); }); app.Run(async context => { await context.Response.WriteAsync("Bu middleware2 den sonrasi calismayacak."); });
c.) Uygulamayı çalıştıralım.
https://localhost:5001/Map
endpoint'e gidelim
Not: Sizde port farklı olabilir.
Sonuç :
Gördüğünüz üzere Map ile gelen uygulamanın endpointine göre Run middleware'ini çalıştırdık.
MapWhen middleware'i ne işe yarar ?
Map middleware'ini gördük, Map ile gelen endpoint'e göre farklı middleware'ler çalıştırabiliyorduk.
MapWhen ise gelen request'in herhangi bir özelliğine göre filtreleme yapabiliyoruz.
Örnek :
a.) Startup.cs içindeki Configure metodunun içini silip aşağıdaki kodları yapıştıralım.
app.MapWhen(c=> c.Request.Method =="GET", config => { config.Run(async context => { await context.Response.WriteAsync("Bu MapWhen-Run middleware den sonraski middleware calismayacak. Ve geriye donuyor.."); }); }); app.Map("/map", config => { config.Run(async context => { await context.Response.WriteAsync("Bu Run middleware den sonraski middleware calismayacak. Ve geriye donuyor.."); }); }); app.Use(async (context, next) => { await context.Response.WriteAsync(Environment.NewLine + "Bu middleware Use middleware'idir pipelini going" + Environment.NewLine); await next(); await context.Response.WriteAsync(Environment.NewLine + "Bu middleware Use middleware'idir pipelini incoming/n" + Environment.NewLine); }); app.Run(async context => { await context.Response.WriteAsync("Bu middleware2 den sonrasi calismayacak."); });
b.) Uygulamayı çalıştıralım :
Gördüğünüz üzere uygulamadan gelen herhangi bir GET isteği için aşağıdaki sonuç dönecektir artık.
Bir dahaki yazımda görüşmek dileğiyle.
En iyi dileklerim ile.
Mustafa Samed Yeyin.
Top comments (0)