Middleware Nedir, Niçin kullanmalıyız?

Middleware Nedir, Niçin kullanmalıyız?


Middleware, Framework zamanında kullanılan filterlar, sunucumuza istek geldiğinde ve ya sunucumuzdan bir yanıt gönderileceğinde tetiklenerek araya giren yapılardır.

Örnek verecek olursak, kullanıcıları listelemek için bir ActionResult'a gitmek istenildiğinde ilk önce isteği middleware yakalar ve sonra ActionResult'a gönderir. ActionResult işini bitirdikten sonra client bu bilgiyi alabilir. Çeşitli ihtiyaçlarınız doğrultusunda sizde bu istekleri kontrol edebilirsiniz. Vereceğimiz örnekte gelen isteklerin adresini console'a basan bir uygulama yapacağız. Siz de burada HttpContext'inizi okuyarak çeşitli kontrollerinizi yapabilirsiniz.

public sealed class RequestMiddleware
{
    private readonly RequestDelegate _next;

    public RequestMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public Task Invoke(HttpContext context)
    {
        Console.WriteLine(context.Request.Path);
				
        return _next(context);
    }
}

Yukarıda belirmiş olduğumuz class'ı Startup.cs de ekleyelim.

public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        //...
        app.UseMiddleware<RequestMiddleware>();
        //...
    }
}

An error has occurred. This application may no longer respond until reloaded. Reload 🗙