How to implement pagination in Rust REST API

Web
Implement pagination in a Rust REST API by defining a Deserialize struct and using the axum Query extractor to parse page parameters.

Use the Query extractor with a serde::Deserialize struct to parse page and per_page parameters directly in your handler.

use axum::{extract::Query, routing::get, Router};
use serde::Deserialize;

#[derive(Deserialize)]
struct Pagination {
    page: usize,
    per_page: usize,
}

async fn list_items(pagination: Query<Pagination>) {
    let page = pagination.0.page;
    let per_page = pagination.0.per_page;
    // Fetch and return paginated data here
}

let app = Router::new().route("/items", get(list_items));