You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI中Swagger UI自动出现必填local_kw字段的移除问题

问题原因

你在接口中直接使用Depends(SessionLocal)时,SessionLocal是SQLAlchemy的sessionmaker生成的实例,它的__call__方法内置了local_kw参数。FastAPI会自动解析依赖对象的参数,因此这个local_kw被识别为必填字段,出现在了Swagger UI的表单中。

解决方法

把数据库会话的获取逻辑包装成一个无额外参数的依赖函数,替代直接传入sessionmaker实例:

  1. 新增数据库会话依赖函数:
def get_db():
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()
  1. 修改接口中的依赖声明:
@router.post("/token", response_model=dict)
async def login_for_access_token(
    login_data: LoginRequestBody,
    session: Session = Depends(get_db)  # 替换原有的Depends(SessionLocal)
):
    # 原有业务逻辑保持不变

这样修改后,FastAPI只会解析get_db函数的参数(该函数无额外入参),Swagger UI中的local_kw必填字段就会消失。

内容的提问来源于stack exchange,提问作者Avin Mathew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:45:03