Chapter 26: Pagination, Filtering, and Ordering
Cursor-Based Pagination
message ListUsersRequest {
int32 page_size = 1; // max items per page (default 20, max 100)
string page_token = 2; // opaque token from previous response
}
message ListUsersResponse {
repeated User users = 1;
string next_page_token = 2; // empty = no more pages
}
Filtering
message ListUsersRequest {
int32 page_size = 1;
string page_token = 2;
string filter = 3; // e.g. "age > 25 AND country = 'Sweden'"
string order_by = 4; // e.g. "created_at desc"
}