Expand description
Pagination utilities for web framework integration.
Provides the Pagination struct which implements Serialize/Deserialize
for easy extraction from query parameters in frameworks like Axum or Actix-web.
§Pagination Module
This module provides a standard Pagination struct that is compatible with
web frameworks like axum, actix-web, and serde. It allows for easy
extraction of pagination parameters from HTTP requests and application
to QueryBuilder instances.
§Features
- Serde Compatibility: derives
SerializeandDeserialize - Query Integration:
applymethod to automatically paginate queries - Defaults: sane defaults (page 0, limit 10)
§Example with Axum
ⓘ
use axum::{extract::Query, Json};
use bottle_orm::{Database, pagination::Pagination};
async fn list_users(
State(db): State<Database>,
Query(pagination): Query<Pagination>
) -> Json<Vec<User>> {
let users = pagination.apply(db.model::<User>())
.scan()
.await
.unwrap();
Json(users)
}Structs§
- Paginated
- A wrapper for paginated results.
- Pagination
- A standard pagination structure.