python data_error ai_generated true

FastAPI 请求验证错误:缺少必填字段。

fastapi.exceptions.RequestValidationError: field required

ID: python/fastapi-request-validation-missing-field

其他格式: JSON · Markdown 中文 · English
80%修复率
88%置信度
0证据数
2024-05-20首次发现

版本兼容性

版本状态引入弃用备注
3.x active

根因分析

请求体或查询参数缺少 Pydantic 模型或函数签名中定义的必填字段。

English

Request body or query parameters missing a required field defined in Pydantic model or function signature.

generic

解决方案

  1. 95% 成功率
    from fastapi import FastAPI, Request
    from fastapi.exceptions import RequestValidationError
    from fastapi.responses import JSONResponse
    
    @app.exception_handler(RequestValidationError)
    async def validation_exception_handler(request: Request, exc: RequestValidationError):
        return JSONResponse(status_code=422, content={"detail": exc.errors()})
  2. 90% 成功率
    Ensure required fields in Pydantic model: class Item(BaseModel):
        name: str  # no default
        price: float

无效尝试

常见但无效的做法:

  1. 80% 失败

    FastAPI raises RequestValidationError specifically; generic catches miss it and return 500.

  2. 70% 失败

    Hides bugs and may not satisfy API contract; still fails if type mismatch.