Invoervalidatie in FastAPI

AI in productie brengen met FastAPI

Matt Eckerle

Software and Data Engineering Leader

Invoergegevens valideren

Stroomschema van ML-voorspelling met FastAPI

AI in productie brengen met FastAPI

Waarom de input valideren?

 

  • Validatie voor dataintegriteit
  • Fouten in de applicatie voorkomen
  • Integreert met Pydantic
  • Biedt krachtige tools voor datavalidatie

 

Een logo van Pydantic

AI in productie brengen met FastAPI

Pydantic voor vooraf gedefinieerde functies

Veldvalidatie met pydantic

AI in productie brengen met FastAPI

Aangepaste validatie met pydantic

Aangepaste validatie met pydantic

AI in productie brengen met FastAPI

Netjes foutmeldingen geven

Vriendelijk foutrapport bij validatie

AI in productie brengen met FastAPI

Pydantic veldvalidators

  • Endpoint voor gebruikersregistratie

  • De door gebruikers ingevoerde gebruikersnaam valideren:

from pydantic import BaseModel, Field
class User(BaseModel):
    username: str = Field(..., min_length=3, max_length=50)
AI in productie brengen met FastAPI

Aangepaste validators toevoegen

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
AI in productie brengen met FastAPI

Aangepaste validators in actie

Geldig verzoek:

{"username": "john_doe", "age": 25}
Geldige gebruiker: username='john_doe' age=25

Ongeldig verzoek:

{"username": "too_young", "age": 10}
Validatiefout voor {'username': 'too_young', 'age': 10}: User must be at least 13
AI in productie brengen met FastAPI

Alles combineren

Vriendelijk foutrapport bij validatie

  • Veldvalidator voor gebruikersnaam
  • Aangepaste validator voor leeftijd
  • Foutmelding bij mislukte validatie
AI in productie brengen met FastAPI

Alles combineren

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

Output:

{
  "message": "User created successfully",
    "user": {
          "username": "john_doe", 
           "age": 25
    }
}
AI in productie brengen met FastAPI

Laten we oefenen!

AI in productie brengen met FastAPI

Preparing Video For Download...