DEV Community

MustafaSamedYeyin
MustafaSamedYeyin

Posted on

3 2

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/

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More