Проміжне програмне забезпечення

Мідлвар (Middleware) — це компонент, який вбудовується в конвеєр програми для обробки запитів та відповідей.

Мідлвари з’єднуються ланцюжком і виконуються в тій послідовності, в якій вони були додані.

Мідлвар — Run

app.Run( )

app.Run(async (HttpContext context) =>  
{  
//код  
});

Метод-розширення під назвою “Run” використовується для виконання термінуючого / короткозамкненого мідлвара, який не пересилає запит наступному мідлвару.

Ланцюжок Мідлварів

pic

app.Use( )

app.Use(async (HttpContext context, RequestDelegate next) =>  
{  
 //логіка до  
 await next(context);  
 //логіка після  
});

Метод-розширення під назвою “Use” використовується для виконання нетермінуючого / нескоротозамкненого мідлвара, який може або не може переслати запит наступному мідлвару.

Клас Мідлвару

Клас мідлвару використовується для того, щоб відокремити логіку мідлвару від лямбда-виразу до окремого / багаторазового класу.

class MiddlewareClassName : IMiddleware  
{  
 public async Task InvokeAsync(HttpContext context, RequestDelegate next)  
 {  
 //логіка до  
 await next(context);  
 //логіка після  
 }  
}

Розширення Мідлвару

class MiddlewareClassName : IMiddleware  
{  
 public async Task InvokeAsync(HttpContext context,RequestDelegate next)  
 {  
 //логіка до  
 await next(context);  
 //логіка після  
 }  
});

Метод-розширення мідлвару використовується для виклику мідлвару через один виклик методу.

Звичний Мідлвар

class MiddlewareClassName  
{  
 private readonly RequestDelegate _next;  

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

 public async Task InvokeAsync(HttpContext context)  
 {  
 //логіка до  
 await _next(context);  
 //логіка після  
 }  
});  


static class ClassName  
{  
 public static IApplicationBuilder ExtensionMethodName(this IApplicationBuilder app)  
 {  
 return app.UseMiddleware();  
 }  
}

Правильний Порядок Мідлварів

pic

Мідлвар — UseWhen

pic

app.UseWhen( )

app.UseWhen(  
 context => { return boolean; },  
 app =>  
 {  
 //додавайте ваші мідлвари  
 }  
);

Метод-розширення під назвою “UseWhen” використовується для виконання гілки мідлвару лише коли вказана умова є істинною.

Дякуємо за прочитане!

Слідкуйте за нами: @ilhanbal577

Автор: İlhan Bal

Код написав: İlhan Bal

Перекладено з: Middleware

Leave a Reply

Your email address will not be published. Required fields are marked *