ShiErFeng/shierfeng-fastapi-backend/middlewares/context_middleware.py
2026-07-24 09:43:10 +08:00

30 lines
836 B
Python

from fastapi import FastAPI, Request
from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint
from starlette.responses import Response
from common.context import RequestContext
class ContextCleanupMiddleware(BaseHTTPMiddleware):
"""
上下文清理中间件
"""
async def dispatch(self, request: Request, call_next: RequestResponseEndpoint) -> Response:
"""
在每个请求处理完成后清理上下文信息
"""
response = await call_next(request)
# 请求处理完成后清理所有上下文变量
RequestContext.clear_all()
return response
def add_context_cleanup_middleware(app: FastAPI) -> None:
"""
添加上下文清理中间件
:param app: FastAPI对象
"""
app.add_middleware(ContextCleanupMiddleware)