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

- **ID:** `python/fastapi-request-validation-missing-field`
- **领域:** python
- **类别:** data_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

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

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 3.x | active | — | — |

## 解决方案

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
   ```

## 无效尝试

- **** — FastAPI raises RequestValidationError specifically; generic catches miss it and return 500. (80% 失败率)
- **** — Hides bugs and may not satisfy API contract; still fails if type mismatch. (70% 失败率)
