Skip to content

Latest commit

 

History

History
118 lines (83 loc) · 2.25 KB

File metadata and controls

118 lines (83 loc) · 2.25 KB

中间件系统

功能特性

  • 请求中间件 - 在请求处理前执行
  • 响应中间件 - 在响应处理后执行
  • 异常中间件 - 在异常处理时执行
  • 内置中间件 - 日志、安全、CORS、限流、健康检查
  • 自定义中间件 - 支持自定义中间件

内置中间件

LoggingMiddleware

记录请求日志:

from litefs.middleware import LoggingMiddleware

app = (
    Litefs(**config)
    .add_middleware(LoggingMiddleware)
)

SecurityMiddleware

安全防护中间件:

from litefs.middleware import SecurityMiddleware

app = (
    Litefs(**config)
    .add_middleware(SecurityMiddleware)
)

CORSMiddleware

跨域资源共享中间件:

from litefs.middleware import CORSMiddleware

app = (
    Litefs(**config)
    .add_middleware(CORSMiddleware)
)

RateLimitMiddleware

速率限制中间件:

from litefs.middleware import RateLimitMiddleware

app = (
    Litefs(**config)
    .add_middleware(RateLimitMiddleware)
)

HealthCheck

健康检查中间件:

from litefs.middleware import HealthCheck

app = (
    Litefs(**config)
    .add_middleware(HealthCheck)
)

自定义中间件

from litefs.middleware.base import Middleware

class CustomMiddleware(Middleware):
    def process_request(self, request_handler):
        # 在请求处理前执行
        request_handler._start_time = time.time()
        return None
    
    def process_response(self, request_handler, response):
        # 在响应处理后执行
        duration = time.time() - request_handler._start_time
        response.headers['X-Response-Time'] = f'{duration:.3f}s'
        return response
    
    def process_exception(self, request_handler, exception):
        # 在异常处理时执行
        print(f"Exception: {exception}")
        return None

中间件执行顺序

中间件按照添加顺序执行,响应时逆序执行:

请求: 1 → 2 → 3 → Handler → 3 → 2 → 1

最佳实践

  • 职责单一:每个中间件只做一件事
  • 顺序配置:日志 → 安全 → 功能 → 特殊
  • 错误处理:合理处理异常

相关文档

  • :doc:routing-guide - 路由系统
  • :doc:configuration - 配置管理