DEV Community

MustafaSamedYeyin
MustafaSamedYeyin

Posted on

Asp.net core Middleware; Map, MapWhen Giriş.

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."); }); 
Enter fullscreen mode Exit fullscreen mode

c.) Uygulamayı çalıştıralım.

https://localhost:5001/Map
endpoint'e gidelim

Not: Sizde port farklı olabilir.

Sonuç :

Image description

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."); }); 
Enter fullscreen mode Exit fullscreen mode

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.

Image description

Bir dahaki yazımda görüşmek dileğiyle.

En iyi dileklerim ile.

Mustafa Samed Yeyin.

https://www.dotnettr.com/

Top comments (0)