FastAPI'de girdi doğrulama

FastAPI ile Üretime AI Dağıtımı

Matt Eckerle

Software and Data Engineering Leader

Girdi verisini doğrulama

FastAPI ile ML tahmini akış şeması

FastAPI ile Üretime AI Dağıtımı

Neden girdi doğrulanır?

 

  • Veri bütünlüğü için doğrulama
  • Uygulamadaki hataları önler
  • Pydantic ile entegre
  • Veri doğrulama için güçlü araçlar sunar

 

Pydantic logosu

FastAPI ile Üretime AI Dağıtımı

Ön tanımlı işlevler için Pydantic

Pydantic ile alan doğrulama

FastAPI ile Üretime AI Dağıtımı

Pydantic ile özel doğrulama

Pydantic ile özel doğrulama

FastAPI ile Üretime AI Dağıtımı

Nazik hata raporlama

Doğrulama sırasında hata raporlama

FastAPI ile Üretime AI Dağıtımı

Pydantic alan doğrulayıcıları

  • Kullanıcı kayıt endpoint'i

  • Kullanıcıların girdiği kullanıcı adını doğrulama:

from pydantic import BaseModel, Field
class User(BaseModel):
    username: str = Field(..., min_length=3, max_length=50)
FastAPI ile Üretime AI Dağıtımı

Özel doğrulayıcı ekleme

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 ile Üretime AI Dağıtımı

Özel doğrulayıcılar iş başında

Geçerli istek:

{"username": "john_doe", "age": 25}
Geçerli kullanıcı: username='john_doe' age=25

Geçersiz istek:

{"username": "too_young", "age": 10}
{'username': 'too_young', 'age': 10} için doğrulama hatası: User must be at least 13
FastAPI ile Üretime AI Dağıtımı

Hepsini bir araya getirelim

Doğrulama sırasında hata raporlama

  • Kullanıcı adı için alan doğrulayıcı
  • Yaş için özel doğrulayıcı
  • Doğrulama başarısızsa hata mesajı
FastAPI ile Üretime AI Dağıtımı

Hepsini bir araya getirelim

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

Çıktı:

{
  "message": "User created successfully",
    "user": {
          "username": "john_doe", 
           "age": 25
    }
}
FastAPI ile Üretime AI Dağıtımı

Hadi pratik yapalım!

FastAPI ile Üretime AI Dağıtımı

Preparing Video For Download...