Validace vstupu ve FastAPI

Nasazení AI do produkce s FastAPI

Matt Eckerle

Software and Data Engineering Leader

Validace vstupních dat

Vývojový diagram predikce ML s FastAPI

Nasazení AI do produkce s FastAPI

Proč validovat vstup?

 

  • Validace pro integritu dat
  • Předchází chybám v aplikaci
  • Integrace s Pydantic
  • Výkonné nástroje pro validaci dat

 

Logo Pydantic

Nasazení AI do produkce s FastAPI

Pydantic pro předdefinované funkce

Validace polí pomocí Pydantic

Nasazení AI do produkce s FastAPI

Vlastní validace s Pydantic

Vlastní validace pomocí Pydantic

Nasazení AI do produkce s FastAPI

Přehledné hlášení chyb

Hlášení chyb při validaci

Nasazení AI do produkce s FastAPI

Validátory polí v Pydantic

  • Endpoint pro registraci uživatele

  • Validace uživatelského jména:

from pydantic import BaseModel, Field
class User(BaseModel):
    username: str = Field(..., min_length=3, max_length=50)
Nasazení AI do produkce s FastAPI

Přidání vlastních validátorů

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
Nasazení AI do produkce s FastAPI

Vlastní validátory v praxi

Platný požadavek:

{"username": "john_doe", "age": 25}
Valid user: username='john_doe' age=25

Neplatný požadavek:

{"username": "too_young", "age": 10}
Validation error for {'username': 'too_young', 'age': 10}: User must be at least 13
Nasazení AI do produkce s FastAPI

Vše dohromady

Hlášení chyb při validaci

  • Validátor pole pro uživatelské jméno
  • Vlastní validátor pro věk
  • Chybová zpráva při selhání validace
Nasazení AI do produkce s FastAPI

Vše dohromady

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

Výstup:

{
  "message": "User created successfully",
    "user": {
          "username": "john_doe", 
           "age": 25
    }
}
Nasazení AI do produkce s FastAPI

Lass uns üben!

Nasazení AI do produkce s FastAPI

Preparing Video For Download...