Vue d'ensemble

FastAPI 0.100, publié le 8 juillet 2023, ajoute le support complet de Pydantic v2 tout en maintenant la compatibilité avec v1.

Fonctionnalités principales

Support de Pydantic v2

FastAPI tire parti des performances de Pydantic v2 pour la validation des requêtes et la sérialisation des réponses, avec des gains significatifs.

python
from fastapi import FastAPI
from pydantic import BaseModel, field_validator

app = FastAPI()

class Article(BaseModel):
    titre: str
    prix: float

    @field_validator('prix')
    @classmethod
    def prix_positif(cls, v):
        if v <= 0:
            raise ValueError('Prix positif requis')
        return v

@app.post('/articles')
async def creer_article(article: Article):
    return article.model_dump()

Compatibilité v1/v2

FastAPI 0.100 supporte les deux versions de Pydantic simultanément, facilitant la migration progressive des applications existantes.

python
from fastapi import FastAPI, Query

app = FastAPI()

@app.get('/recherche')
async def rechercher(
    q: str = Query(min_length=3, max_length=50),
    page: int = Query(default=1, ge=1),
    taille: int = Query(default=10, le=100),
):
    return {'q': q, 'page': page, 'taille': taille}

Sources