FastAPI中间件实战:实现请求日志与响应时间统计

本文介绍FastAPI中间件的使用,用于统一处理请求/响应逻辑(如日志、认证等),避免重复代码。首先需安装FastAPI和Uvicorn。核心是通过继承Starlette的BaseHTTPMiddleware,实现dispatch方法处理中间件逻辑:记录请求开始时间,调用call_next获取响应,计算耗时,构造包含方法、路径、IP、耗时、状态码的日志并输出。将中间件添加到应用需调用app.add_middleware。测试时定义简单路由,访问后控制台输出日志。可扩展优化:用logging模块、记录请求体、异常处理等。中间件简化开发,提升代码可维护性,适用于认证、跨域等通用逻辑。

阅读全文
FastAPI中间件:如何处理跨域、认证等请求拦截

FastAPI中间件是请求/响应拦截器,可在请求进入和响应返回前处理数据,核心作用是统一处理请求与响应,先注册的中间件先执行,返回时逆序。典型应用:1. 跨域处理(CORS):通过CORSMiddleware实现,配置允许源(开发用“*”,生产指定域名)、凭证、方法和头信息,解决前端跨域请求问题。2. 认证拦截:通过自定义中间件全局验证Token(如Bearer Token),验证失败返回401,区别于依赖项(依赖项针对特定路由)。注意事项:执行顺序、避免过度拦截、区分中间件(通用逻辑)与依赖项(局部逻辑)。

阅读全文