.NET Core 3.0 中间件 Middleware

640

中间件官网文档解释:中间件是一种装配到应用管道以处理请求和响应的软件 每个中间件:

  • 选择是否将请求传递到管道中的下一个组件。

  • 可在管道中的下一个组件前后执行工作。

使用 IApplicationBuilder 创建中间件管道

ASP.NET Core 请求管道包含一系列请求委托,依次调用。下图演示了这一概念。沿黑色箭头执行。

.NET Core 3.0 中间件 Middleware_第1张图片

IApplicationBuilder提供了三个扩展方法配置请求委托

  • app.Run 作用添加一个终端中间件,因为不在向下传递请求,常常公开在管道末尾运行。实例代码
 
   
  • app.Use 将多个请求委托链接在一起。next 参数表示管道中的下一个委托。可通过不 调用 next 参数使管道短路等同于aap.run。通常可在下一个委托前后执行操作,如以下示例所示:

 
   
 
   
  • Map 扩展用作约定来创建管道分支。Map 基于给定请求路径的匹配项来创建请求管道分支。如果请求路径以给定路径开头,则执行分支。实例代码如下

 
   
 
   

自定义中间件

以下演示记录api输入输出参数的中间件。

1.创建一个webapi项目,在默认的WeatherForecastController控制器中添加一个简单的post方法,代码如下

 
   

.NET Core 3.0 中间件 Middleware_第2张图片

选择之后默认代码如下:

 
   
 
   

上面invoke不是异步的,我们自己可以改动,以下代码展示 一个api请求的输入参数和输出信息的日志打印

 
   
 
   

.NET Core 3.0 中间件 Middleware_第3张图片

控制台上打印的信息如下:

.NET Core 3.0 中间件 Middleware_第4张图片

你可能感兴趣的:(.NET Core 3.0 中间件 Middleware)