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)