python data_error ai_generated true

fastapi.exceptions.ResponseValidationError: Response model validation failed: field 'email' is not a valid email address

ID: python/fastapi-response-model-validation

Also available as: JSON · Markdown · 中文
80%Fix Rate
83%Confidence
0Evidence
2024-07-08First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
3.x active

Root Cause

FastAPI响应数据不符合响应模型中的验证规则

generic

中文

FastAPI响应数据不符合响应模型中的验证规则

Workarounds

  1. 95% success 确保数据符合模型验证规则
    from pydantic import EmailStr
    class UserOut(BaseModel):
        email: EmailStr
    user = UserOut(email='[email protected]')
  2. 85% success 使用response_model_exclude_unset选项
    @app.get('/user', response_model=UserOut, response_model_exclude_unset=True)

Dead Ends

Common approaches that don't work:

  1. 在响应模型中移除验证规则 50% fail

    移除验证会降低数据质量

  2. 使用try-except捕获响应错误 40% fail

    验证在响应发送前执行,无法在应用层捕获