中间件官网文档解释:中间件是一种装配到应用管道以处理请求和响应的软件 每个中间件:
选择是否将请求传递到管道中的下一个组件。
可在管道中的下一个组件前后执行工作。
使用 IApplicationBuilder 创建中间件管道
ASP.NET Core 请求管道包含一系列请求委托,依次调用。下图演示了这一概念。沿黑色箭头执行。
IApplicationBuilder提供了三个扩展方法配置请求委托
- app.Run 作用添加一个终端中间件,因为不在向下传递请求,常常公开在管道末尾运行。实例代码
app.Use 将多个请求委托链接在一起。next 参数表示管道中的下一个委托。可通过不 调用 next 参数使管道短路等同于aap.run。通常可在下一个委托前后执行操作,如以下示例所示:
Map 扩展用作约定来创建管道分支。Map 基于给定请求路径的匹配项来创建请求管道分支。如果请求路径以给定路径开头,则执行分支。实例代码如下
自定义中间件
以下演示记录api输入输出参数的中间件。
1.创建一个webapi项目,在默认的WeatherForecastController控制器中添加一个简单的post方法,代码如下
选择之后默认代码如下:
上面invoke不是异步的,我们自己可以改动,以下代码展示 一个api请求的输入参数和输出信息的日志打印
控制台上打印的信息如下: