Skip to content

Schemas

Standardized Pydantic response models for consistent API responses across your FastAPI application.

Overview

The schemas module provides generic response wrappers that enforce a uniform response structure. All models use from_attributes=True for ORM compatibility and validate_assignment=True for runtime type safety.

Response models

Response[T]

The most common wrapper for a single resource response.

from fastapi_toolsets.schemas import Response

@router.get("/users/{id}")
async def get_user(user: User = UserDep) -> Response[UserSchema]:
    return Response(data=user, message="User retrieved")

PaginatedResponse[T]

Wraps a list of items with pagination metadata.

from fastapi_toolsets.schemas import PaginatedResponse, Pagination

@router.get("/users")
async def list_users() -> PaginatedResponse[UserSchema]:
    return PaginatedResponse(
        data=users,
        pagination=Pagination(
            total_count=100,
            items_per_page=10,
            page=1,
            has_more=True,
        ),
    )

ErrorResponse

Returned automatically by the exceptions handler.


API Reference