Pagination helps to split large lists of data into smaller parts. This makes it easier and faster to get and show data step by step.
Pagination with limit and offset in Rest API
GET /items?limit=10&offset=20
limit tells how many items to get.
offset tells where to start counting items from.
GET /users?limit=5&offset=0
GET /posts?limit=10&offset=10
GET /comments?limit=3&offset=6
This small web app uses Flask to create an API endpoint /items. You can add limit and offset as query parameters to get parts of the list of numbers from 1 to 100.
For example, /items?limit=5&offset=10 returns 5 items starting from the 11th number.
from flask import Flask, request, jsonify app = Flask(__name__) # Sample data: list of 100 numbers items = list(range(1, 101)) @app.route('/items') def get_items(): try: limit = int(request.args.get('limit', 10)) offset = int(request.args.get('offset', 0)) except ValueError: return jsonify({'error': 'limit and offset must be integers'}), 400 # Get the slice of items sliced_items = items[offset:offset+limit] return jsonify({ 'limit': limit, 'offset': offset, 'items': sliced_items }) if __name__ == '__main__': app.run(debug=True)
Always check that limit and offset are valid numbers to avoid errors.
Use reasonable limit values to avoid sending too much data at once.
Offset starts at 0, meaning the first item is at offset 0.
Pagination splits data into smaller parts using limit and offset.
limit controls how many items to get, offset controls where to start.
This helps apps load data faster and saves internet bandwidth.
Practice
What does the limit parameter control in pagination?
Solution
Step 1: Understand the role of
Thelimitlimitparameter sets how many items you want to get back in one page of results.Step 2: Differentiate from
Theoffsetoffsetcontrols where to start, not how many items to return.Final Answer:
The number of items to return in one page -> Option DQuick Check:
limit = number of items per page [OK]
- Confusing limit with offset
- Thinking limit controls sorting
- Assuming limit is total items
Which of the following is the correct way to request the second page of results with 10 items per page using limit and offset?
GET /items?limit=10&offset=?
Solution
Step 1: Calculate offset for second page
For page 1, offset is 0. For page 2, offset = limit * (page_number - 1) = 10 * (2 - 1) = 10.Step 2: Confirm limit remains 10
Limit stays 10 to get 10 items per page.Final Answer:
10 -> Option AQuick Check:
offset = limit * (page - 1) = 10 [OK]
- Using offset = page number
- Using offset = limit x page number
- Setting offset to 0 for second page
Given the following API call, what items will be returned if the full list is ["a", "b", "c", "d", "e", "f"]?
GET /items?limit=2&offset=3
Solution
Step 1: Understand offset and limit
Offset 3 means start from the 4th item (0-based index), which is "d".Step 2: Select 2 items from offset
Limit 2 means take 2 items starting at "d", so items are "d" and "e".Final Answer:
["d", "e"] -> Option AQuick Check:
Start at index 3, take 2 items = ["d", "e"] [OK]
- Starting count at 1 instead of 0
- Taking wrong slice of items
- Confusing offset and limit roles
Identify the error in this API call for pagination: GET /items?limit=5&offset=-10
Solution
Step 1: Check offset value
Offset represents the starting position and cannot be negative because you cannot start before the first item.Step 2: Validate limit and offset rules
Limit can be any positive number; offset must be zero or positive.Final Answer:
Negative offset is invalid -> Option CQuick Check:
Offset ≥ 0 required [OK]
- Allowing negative offset
- Confusing limit and offset roles
- Assuming offset can be string
You have 53 items and want to paginate with limit=10. How many pages will you have, and what is the offset for the last page?
Solution
Step 1: Calculate total pages
Total pages = ceiling of total items / limit = ceil(53 / 10) = 6 pages.Step 2: Calculate offset for last page
Offset for last page = limit x (pages - 1) = 10 x (6 - 1) = 50.Final Answer:
6 pages, offset 50 -> Option BQuick Check:
Pages = 6, offset last = 50 [OK]
- Using floor instead of ceiling for pages
- Calculating offset as limit x pages
- Ignoring leftover items on last page
Ready to prove it?
Pass the test and this pattern moves unknown
