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)