Pagination Integration (fastapi_responseschema.integrations.pagination)
Class AbstractPagedResponseSchema
class AbstractPagedResponseSchema(AbstractPage[T], AbstractResponseSchema[T],
Generic[T])
Abstract generic model for building response schema interfaces with pagination logic.
Class PagedSchemaAPIRoute
class PagedSchemaAPIRoute(SchemaAPIRoute)
A SchemaAPIRoute class with pagination support. Must be subclassed setting at least SchemaAPIRoute.response_model.
Usage:
from typing import Generic, TypeVar
from fastapi_responseschema.integrations.pagination import AbstractPagedResponseSchema
T = TypeVar("T")
class MyResponseSchema(AbstractPagedResponseSchema[T], Generic[T]):
...
class MyAPIRoute(SchemaPagedAPIRoute):
response_schema = MyResponseSchema
paged_response_schema = MyResponseSchema
from fastapi import APIRouter
router = APIRouter(route_class=MyAPIRoute)
Class PaginationMetadata
class PaginationMetadata(BaseModel)
Pagination metadata model for pagination info.
Arguments:
totalint - Total number of items.page_sizeint - Number of items per page.pageint - Page number.linksdict - Object containing pagination links.
from_abstract_page_create
@classmethod
def from_abstract_page_create(cls, total: int,
params: SupportedParams) -> "PaginationMetadata"
Create pagination metadata from an abstract page.
Arguments:
totalint - Total number of items.paramsSupportedParams - A FastaAPI Pagination Params instance.
Returns:
PaginationMetadata- PaginationMetadata instance
Class PaginationParams
class PaginationParams(BaseModel, AbstractParams)
Pagination Querystring parameters
Arguments:
pageint - The page number.page_sizeint - Number of items per page.