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

FastAPI接口返回field required错误:路径参数定义不匹配排查

问题排查:FastAPI路径参数缺失错误

核心原因

路由定义的路径参数名与函数接收的参数名不匹配:

  • 路由路径声明的参数是{question_id}
  • 函数接收的参数却是id: int = Path(..., gt=0)

FastAPI会根据路径参数名称匹配函数中的对应参数,两者名称不一致时,框架无法将URL中的question_id值映射到函数的id参数,因此始终提示id字段缺失。

交互式文档调用异常的原因

参数名不匹配导致FastAPI自动生成的交互式文档无法识别正确的路径参数占位符,调用时直接将路由中的{question_id}作为字面量传入,URL编码后出现%7Bquestion_id%7D,触发422错误。

修复方案

统一路径参数名与函数参数名即可,修改后的代码示例:

@router.get(
    "/{question_id}",
    tags=["questions"],
    status_code=status.HTTP_200_OK,
    response_model=Question,
    dependencies=[Depends(get_db)],
)
def get_question(question_id: int = Path(..., gt=0)):
    return get_question_service(question_id)

若不想修改函数参数名,也可通过Path的name参数显式指定映射关系(更推荐前者,可读性更强):

def get_question(id: int = Path(..., gt=0, name="question_id")):
    return get_question_service(id)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:01:27