什么是中间件
中间件是装配到应用管道以处理请求和响应的软件,每个组件:
选择是否将请求传递到每个管道的下一个组件,可以在管道中的下一个组件前后执行工作 ;
使用RunMap和Use扩展方法来配置请求委托;
请求委托用户生成请求管道,处理每个请求,每个中间件 选择是否将请求传递到管道的系一个人组件 在管道中的下一个组件的
前后执行工作;
请求管道短路
默认的中间件: 错误处理 静态文件服务器(图片) 身份验证 MVC
中间件 和 拦截器相似,都可以阻断请求和处理请求 数据;
next 作用:是否允许指定下一个中间件 如果某个中间件没有 next 就不会执行下面的中间件
配置HTTP管道 Run Use Map MapWhen
Run 方法可以短路管道,因为不会调用 next 请求委托 ;
app.Run(() => {
await context.Response.WriteAsync("Hellow 1");
})
app.Use((context,next) => {
1. 处理业务
await next.Invoke(); // Invoke 指的是委托的调用;
})
当前的next 就是下一个中间件的委托方法是否执行;
将多个请求委托链接在一起,next参数表示管道的下一个请求委托;
在管道中,可以使用不调用next参数来终止或短路管道;
Map 方法用于匹配基于请求路径的请求委托 只接受路径 并配置单独的中间件管道的功能;
app.Map("/api",MapApi); Map : 参数1 匹配地址 参数2 指定匹配的中间件;
private void MapApi(IApplication app){
app.Run(async context => await context.Response.WriteAsync("123"))
}