扫码关注 StackTraces
覆盖异步阻塞、Pydantic 校验、SQLAlchemy 会话、CORS、依赖注入等 FastAPI 开发常见问题。
阻塞事件循环、async/await 误用
async def 端点跑在事件循环主线程,一旦调用 time.sleep 等同步阻塞代码,整个服务包括 /health 都会被冻结。
Pydantic、422、响应模型
返回 422 是请求体或参数与 Pydantic 模型对不上;看响应体 detail 里的 loc、msg、type 就能定位。
Depends、CORS、中间件
CORS 跨域失败多半是漏加 CORSMiddleware、allow_origins 少了前端源,或通配符与 allow_credentials 冲突。
参数漏写 Depends() 会被当成 query 参数报 422;yield 依赖要在 finally 里清理,副作用依赖需关掉缓存。
SQLAlchemy、Session、迁移
每个请求一个 session 并用 yield 依赖保证关闭;在 async 路由里跑同步 Session 会阻塞事件循环。
把你踩过的坑整理出来,帮助下一个遇到同样问题的开发者。