SuperAPI AI 工具集

middleware-patterns

通用与其它

查看项目

更新于 10-16 01:13

技能介绍

用途:该技能整理 ASP.NET Core 中间件的常见设计模式,帮助开发者处理日志、认证、缓存等横切关注点,并理解管道顺序对应用行为的影响。

主要能力:

  1. 管道顺序:给出推荐注册顺序(异常处理、HSTS、HTTPS 重定向、静态文件、路由、CORS、认证、授权、自定义中间件、终结点执行),并列出顺序错误导致的后果,如 UseAuthorization 放在 UseRouting 之前会使授权失效。
  2. 约定式中间件:构造函数接收 RequestDelegate,实现 InvokeAsync,并通过 UseMiddleware<T>() 注册。
  3. 工厂式 IMiddleware:适合需要作用域服务的场景,需显式 DI 注册(如 builder.Services.AddScoped<TenantMiddleware>()),按请求创建实例。
  4. 内联中间件:app.Use 透传、app.Run 终止、app.Map 按路径分支。
  5. 短路逻辑:不调用 next() 直接返回,如 API Key 校验返回 401。
  6. 请求/响应操作:EnableBuffering 读取请求体;替换 Response.Body 修改响应,但会带来内存开销,仅建议诊断使用。
  7. 异常处理:UseExceptionHandler、.NET 8+ 的 IExceptionHandler 多处理器、StatusCodePages。
  8. 条件与分支:UseWhen(会重新汇入管道)、MapWhen(不汇入)、按环境或路径前缀创建独立管道。
  9. 带选项的中间件:通过 IOptions 配置限流参数等。
  10. 测试:使用 DefaultHttpContext 对中间件进行单元测试。

使用方式:在 Program.cs 中按推荐顺序注册中间件,自定义中间件通过 UseMiddleware 或扩展方法接入。

适用场景:ASP.NET Core Web 应用的请求处理管道设计、横切关注点实现与调试。

限制:资料未提供安装命令、版本要求、收费信息或性能基准;部分示例(如限流令牌获取)为占位实现,需自行补全。