Xác thực đầu vào trong FastAPI

Triển khai AI vào môi trường sản xuất với FastAPI

Matt Eckerle

Software and Data Engineering Leader

Xác thực dữ liệu đầu vào

Lưu đồ dự đoán ML với FastAPI

Triển khai AI vào môi trường sản xuất với FastAPI

Vì sao cần xác thực đầu vào?

 

  • Xác thực để đảm bảo toàn vẹn dữ liệu
  • Ngăn lỗi trong ứng dụng
  • Tích hợp với Pydantic
  • Cung cấp công cụ mạnh để xác thực dữ liệu

 

Logo của Pydantic

Triển khai AI vào môi trường sản xuất với FastAPI

Pydantic cho hàm dựng sẵn

Xác thực trường với pydantic

Triển khai AI vào môi trường sản xuất với FastAPI

Xác thực tùy chỉnh với pydantic

Xác thực tùy chỉnh với pydantic

Triển khai AI vào môi trường sản xuất với FastAPI

Báo lỗi rõ ràng

Báo lỗi trong quá trình xác thực

Triển khai AI vào môi trường sản xuất với FastAPI

Bộ xác thực trường trong Pydantic

  • Endpoint đăng ký người dùng

  • Xác thực tên người dùng do người dùng nhập:

from pydantic import BaseModel, Field
class User(BaseModel):
    username: str = Field(..., min_length=3, max_length=50)
Triển khai AI vào môi trường sản xuất với FastAPI

Thêm bộ xác thực tùy chỉnh

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
Triển khai AI vào môi trường sản xuất với FastAPI

Bộ xác thực tùy chỉnh hoạt động

Yêu cầu hợp lệ:

{"username": "john_doe", "age": 25}
Người dùng hợp lệ: username='john_doe' age=25

Yêu cầu không hợp lệ:

{"username": "too_young", "age": 10}
Lỗi xác thực cho {'username': 'too_young', 'age': 10}: User must be at least 13
Triển khai AI vào môi trường sản xuất với FastAPI

Tổng hợp mọi thứ

Báo lỗi trong quá trình xác thực

  • Bộ xác thực trường cho username
  • Bộ xác thực tùy chỉnh cho age
  • Thông báo lỗi nếu xác thực thất bại
Triển khai AI vào môi trường sản xuất với FastAPI

Tổng hợp mọi thứ

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

Đầu ra:

{
  "message": "User created successfully",
    "user": {
          "username": "john_doe", 
           "age": 25
    }
}
Triển khai AI vào môi trường sản xuất với FastAPI

Cùng luyện tập nào!

Triển khai AI vào môi trường sản xuất với FastAPI

Preparing Video For Download...