Overview
FastAPI 0.100, released on July 8, 2023, adds full Pydantic v2 support while maintaining v1 compatibility.
Main Features
Pydantic v2 support
FastAPI leverages Pydantic v2 performance for request validation and response serialization, with significant gains.
python
from fastapi import FastAPI
from pydantic import BaseModel, field_validator
app = FastAPI()
class Item(BaseModel):
title: str
price: float
@field_validator('price')
@classmethod
def price_must_be_positive(cls, v):
if v <= 0:
raise ValueError('Positive price required')
return v
@app.post('/items')
async def create_item(item: Item):
return item.model_dump()
v1/v2 compatibility
FastAPI 0.100 supports both Pydantic versions simultaneously, facilitating gradual migration of existing applications.
python
from fastapi import FastAPI, Query
app = FastAPI()
@app.get('/search')
async def search(
q: str = Query(min_length=3, max_length=50),
page: int = Query(default=1, ge=1),
size: int = Query(default=10, le=100),
):
return {'q': q, 'page': page, 'size': size}
