用途:该技能用于在 Litestar 中为横切关注点设计并应用中间件,例如 CORS、CSRF、允许主机检查、压缩、限流、日志、会话与请求处理。它强调先确认需求是否真正适合中间件,而非路由业务逻辑。
主要能力与决策:优先使用内置配置式中间件;按需选择实现方式——极小包装用中间件工厂,可配置的生产级自定义中间件用 ASGIMiddleware,最小底层行为用 MiddlewareProtocol,AbstractMiddleware 仅用于兼容或迁移,需要构造参数时用 DefineMiddleware。若行为属于 after_request、before_send 等钩子阶段,应改用生命周期钩子。
使用方式:一次只处理一个中间件关注点;显式审查内置配置值;排除项与 opt 跳过保持窄范围并测试;中间件顺序视为 API 行为的一部分;保持作用域感知(http、websocket、lifespan);保持非阻塞且符合 ASGI。
限制与注意:404 与 405 由路由器在中间件栈之前生成,需显式处理其预期;避免把路由业务规则放入中间件、在已有内置配置或钩子时自建中间件、忽略顺序、在错误 ASGI 阶段修改状态、依赖未文档化的 opt 排除或路径模式。验证需覆盖成功与异常响应、排除与作用域、层与列表顺序,以及安全与日志配置是否符合部署预期。
参考:内置与顺序、自定义模式见对应参考文件;相关文档见 https://docs.litestar.dev/latest/usage/middleware/index.html 等。