UsePydanticV1
UsePydanticV1 is a customizer that allows you to convert Pydantic v2 models to Pydantic v1 models
for compatibility purposes. This is useful when you still have parts of your codebase that rely on Pydantic v1
and you want to use FastAPI Pagination without migrating everything to Pydantic v2 at once
from random import random
from typing import TypeVar
from fastapi import FastAPI
from fastapi_pagination import Page, add_pagination, paginate
from fastapi_pagination.customization import CustomizedPage, UsePydanticV1
from pydantic.v1 import BaseModel
class Item(BaseModel):
id: int
score: float = 0.0
app = FastAPI()
add_pagination(app)
T = TypeVar("T")
CustomPage = CustomizedPage[
Page[T],
UsePydanticV1(),
]
# req: GET /items?size=5&page=2
@app.get("/items")
async def get_items() -> CustomPage[Item]:
return paginate(
[Item(id=id_, score=random()) for id_ in range(1_000)]
)