Queries

The library provide some useful tooling for creating dataclasses for validating schema when querying paginated endpoints.

Pagination

Base class

class openapi.pagination.Pagination[source]

Base class for Pagination

apply(visitor)[source]

Apply pagination to the visitor

Return type

None

Return links for paginated data

Return type

Dict[str, str]

paginated(url, data, total=None)[source]

Return paginated data

Return type

PaginatedData

Paginated Data

class openapi.pagination.PaginatedData(url: yarl.URL, data: list, pagination: openapi.pagination.pagination.Pagination, total: Optional[int] = None)[source]

Named tuple containing paginated data and methods for retrieving links to previous or next data in the pagination

data: list

Paginated list of data

Header links

Return type

str

json_response(headers=None, **kwargs)[source]

Create a JSON response with link header

pagination: openapi.pagination.pagination.Pagination

Pagination dataclass which created the data

total: Optional[int]

Total number of records (supported by limit/offset pagination only)

url: yarl.URL

Base url

Visitor

class openapi.pagination.PaginationVisitor[source]

Visitor for pagination

apply_cursor_pagination(cursor, limit, order_by, previous)[source]

Apply cursor pagination

apply_offset_pagination(limit, offset, order_by)[source]

Apply limit/offset pagination

Limit/Offset Pagination

openapi.pagination.offsetPagination(*order_by_fields, default_limit=50, max_limit=100)[source]

Crate a limit/offset Pagination dataclass

Return type

Type[Pagination]

Cursor Pagination

openapi.pagination.cursorPagination(*order_by_fields, default_limit=50, max_limit=100)[source]
Return type

Type[Pagination]

searchable

openapi.pagination.searchable(*searchable_fields)[source]

Create a dataclass with search_fields class attribute and search field. The search field is a set of field which can be used for searching and it is used internally by the library, while the search field is the query string passed in the url.

Parameters

searchable_fields – fields which can be used for searching

Return type

type