中间件和跨域
中间件是在请求进入路由前、响应返回客户端前执行的一层逻辑。
常见用途:
- 记录请求日志
- 统计接口耗时
- 添加响应头
- 统一处理跨域
- 接入链路追踪
一、请求处理流程
二、添加一个耗时响应头
解释:
打开浏览器开发者工具或用 /docs 调试,可以看到响应头里多了:
三、中间件里不要做太重的事
中间件会影响所有请求,所以要保持轻量。
适合做:
- 记录简单日志
- 添加请求 ID
- 统计耗时
- 统一响应头
不适合做:
- 大量数据库查询
- 复杂业务计算
- 慢速第三方接口调用
复杂业务应该放在路由、service 或后台任务里。
四、什么是跨域 CORS
如果前端页面和后端 API 不在同一个源,就会遇到跨域。
源由三部分组成:
例如:
端口不同,所以是不同源。浏览器会限制前端直接调用后端,需要后端允许跨域。
五、配置 CORSMiddleware
参数说明:
六、开发环境和生产环境区别
开发环境可以写本地前端地址:
生产环境应该写真实域名:
不建议在生产环境里随手写:
尤其是接口需要 Cookie 或 Authorization 认证时,应该明确列出允许访问的前端域名。
七、常见跨域问题
先记住一点:跨域是浏览器限制,不是 FastAPI 接口本身不能访问。

