UseResponseHeaders
UseResponseHeaders allows to add custom headers to the response based on page instance.
from typing import TypeVar
from fastapi import FastAPI, Query
from fastapi_pagination import Page, add_pagination, paginate
from fastapi_pagination.customization import CustomizedPage, UseResponseHeaders
app = FastAPI()
add_pagination(app)
T = TypeVar("T")
CustomPage = CustomizedPage[
Page[T],
UseResponseHeaders(
lambda page: {
"X-Total-Items": str(page.total),
"X-Total-Pages": str(page.pages),
},
),
]
# req(+headers): GET /nums?page=2&size=5
@app.get("/nums")
async def get_nums() -> CustomPage[int]:
return paginate(range(1_000))