Pagination metadata in response in Rest API - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
When a REST API sends pagination metadata, it helps clients know how many pages or items exist.
We want to understand how the time to prepare this metadata changes as the data size grows.
Analyze the time complexity of the following code snippet.
// Example: Prepare pagination metadata
function getPaginationMetadata(totalItems, itemsPerPage) {
const totalPages = Math.ceil(totalItems / itemsPerPage);
return {
totalItems: totalItems,
itemsPerPage: itemsPerPage,
totalPages: totalPages
};
}
This code calculates total pages and returns metadata for pagination.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Simple arithmetic calculations (division and ceiling).
- How many times: Exactly once per request, no loops or repeated steps.
Explain the growth pattern intuitively.
| Input Size (totalItems) | Approx. Operations |
|---|---|
| 10 | 3 (division, ceiling, return) |
| 100 | 3 (same as above) |
| 1000 | 3 (same as above) |
Pattern observation: The number of operations stays the same no matter how many items there are.
Time Complexity: O(1)
This means the time to prepare pagination metadata does not grow with the number of items.
[X] Wrong: "Calculating pagination metadata takes longer as the number of items grows because it processes each item."
[OK] Correct: The code only uses total counts and simple math, so it does not look at each item individually.
Understanding that pagination metadata calculation is quick and constant time helps you explain efficient API design clearly and confidently.
"What if the code also counted items by scanning a list instead of using a total count? How would the time complexity change?"
Practice
What is the main purpose of including pagination metadata in a REST API response?
Solution
Step 1: Understand pagination metadata role
Pagination metadata provides information about the current page, total pages, and items per page to help clients navigate large data sets.Step 2: Identify the correct purpose
Among the options, only informing the client about page details matches the role of pagination metadata.Final Answer:
To inform the client about the current page and total pages available -> Option AQuick Check:
Pagination metadata = page info [OK]
- Confusing pagination metadata with security features
- Thinking it compresses data
- Assuming it validates user tokens
Which of the following is the correct JSON structure for pagination metadata in a REST API response?
{
"data": [...],
"pagination": {
"current_page": 1,
"total_pages": 5,
"per_page": 10
}
}Solution
Step 1: Check JSON structure for pagination metadata
The correct structure uses a nested object with keys like current_page, total_pages, and per_page to clearly describe pagination details.Step 2: Compare options to the example
{ "pagination": { "current_page": 1, "total_pages": 5, "per_page": 10 } } matches the example with a nested object and descriptive keys, while others use incorrect formats or data types.Final Answer:
{ "pagination": { "current_page": 1, "total_pages": 5, "per_page": 10 } } -> Option DQuick Check:
Pagination metadata = nested object with page info [OK]
- Using arrays instead of objects for metadata
- Using strings instead of structured data
- Omitting descriptive keys
Given this REST API response snippet, what is the value of response.pagination.total_pages?
{
"data": [{"id":1}, {"id":2}],
"pagination": {
"current_page": 2,
"total_pages": 4,
"per_page": 2
}
}Solution
Step 1: Locate the total_pages key in the response
Within the pagination object, total_pages is set to 4.Step 2: Confirm the value of total_pages
The value 4 indicates the total number of pages available in the data set.Final Answer:
4 -> Option BQuick Check:
total_pages = 4 [OK]
- Confusing current_page with total_pages
- Assuming total_pages is the length of data array
- Missing the nested pagination object
Identify the error in this pagination metadata snippet and select the fix:
{
"data": [...],
"pagination": {
"currentPage": 1,
"totalPages": 3,
"perPage": 10
}
}Solution
Step 1: Check key naming conventions in pagination metadata
Standard REST API pagination metadata uses snake_case keys like current_page, total_pages, and per_page for consistency.Step 2: Identify the fix for camelCase keys
Changing currentPage, totalPages, perPage to snake_case fixes the inconsistency and aligns with common API practices.Final Answer:
Change keys to snake_case: current_page, total_pages, per_page -> Option CQuick Check:
Use snake_case keys for pagination metadata [OK]
- Leaving camelCase keys in metadata
- Removing pagination metadata entirely
- Changing numeric values to strings unnecessarily
You have an API returning 45 items with per_page set to 10. How many pages should the total_pages metadata show?
Solution
Step 1: Calculate total pages from total items and per_page
Total pages = total items divided by items per page, rounded up. Here, 45 / 10 = 4.5, rounded up to 5.Step 2: Confirm the correct total_pages value
Since 4 pages would only cover 40 items, 5 pages are needed to cover all 45 items.Final Answer:
5 -> Option AQuick Check:
Ceil(45/10) = 5 pages [OK]
- Using floor division instead of ceiling
- Ignoring leftover items on last page
- Assuming total_pages equals per_page
