FastAPI 的输入验证

使用 FastAPI 在生产环境中部署 AI

Matt Eckerle

Software and Data Engineering Leader

验证输入数据

展示使用 FastAPI 进行机器学习预测的流程图

使用 FastAPI 在生产环境中部署 AI

为何要验证输入?

 

  • 确保数据完整性
  • 预防应用错误
  • 与 Pydantic 集成
  • 提供强大的数据验证工具

 

Pydantic 标志

使用 FastAPI 在生产环境中部署 AI

Pydantic 的预定义验证

使用 pydantic 进行字段验证

使用 FastAPI 在生产环境中部署 AI

Pydantic 的自定义验证

使用 pydantic 进行自定义验证

使用 FastAPI 在生产环境中部署 AI

优雅的错误报告

验证期间的错误报告

使用 FastAPI 在生产环境中部署 AI

Pydantic 字段验证器

  • 用户注册端点

  • 校验用户输入的用户名:

from pydantic import BaseModel, Field
class User(BaseModel):
    username: str = Field(..., min_length=3, max_length=50)
使用 FastAPI 在生产环境中部署 AI

添加自定义验证器

class User(BaseModel):
    username: str = Field(..., 
                          min_length=3, 
                          max_length=50)
    age: int

@field_validator('age') def age_criteria(cls, age): if age < 13: raise ValueError('User must be at least 13') return age
使用 FastAPI 在生产环境中部署 AI

自定义验证器实战

有效请求:

{"username": "john_doe", "age": 25}
有效用户: username='john_doe' age=25

无效请求:

{"username": "too_young", "age": 10}
验证错误 {'username': 'too_young', 'age': 10}: 用户至少需年满 13 岁
使用 FastAPI 在生产环境中部署 AI

综合示例

验证期间的错误报告

  • 用户名的字段验证器
  • 年龄的自定义验证器
  • 验证失败时的错误信息
使用 FastAPI 在生产环境中部署 AI

综合示例

@app.post("/users")
def create_user(user: User):
    return {"message": "User created",
            "user": user.model_dump()}

输出:

{
  "message": "User created successfully",
    "user": {
          "username": "john_doe", 
           "age": 25
    }
}
使用 FastAPI 在生产环境中部署 AI

Passons à la pratique !

使用 FastAPI 在生产环境中部署 AI

Preparing Video For Download...