Query parameters for filtering in Rest API - Time & Space Complexity
When using query parameters to filter data in a REST API, it's important to understand how the filtering affects the time it takes to get results.
We want to know how the time to respond changes as the amount of data or filters grows.
Analyze the time complexity of the following code snippet.
GET /items?color=red&size=medium
// Server receives query parameters
// Filters items list by matching color and size
// Returns filtered list to client
This code filters a list of items based on query parameters like color and size.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Checking each item in the list to see if it matches the filter.
- How many times: Once for every item in the list.
As the number of items grows, the server checks more items to find matches.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 checks |
| 100 | 100 checks |
| 1000 | 1000 checks |
Pattern observation: The number of checks grows directly with the number of items.
Time Complexity: O(n)
This means the time to filter grows in a straight line with the number of items.
[X] Wrong: "Adding more query parameters makes the filtering time multiply exponentially."
[OK] Correct: Each item is checked once against all filters, so time grows linearly with items, not exponentially with filters.
Understanding how filtering scales helps you design APIs that stay fast as data grows, a key skill in real projects.
"What if the server used an index to find matching items instead of checking all items? How would the time complexity change?"
Practice
What is the main purpose of query parameters in a REST API URL?
Solution
Step 1: Understand query parameters role
Query parameters are added after a question mark in a URL to specify or filter data.Step 2: Identify their purpose in REST API
They help clients ask for specific data subsets, making responses smaller and faster.Final Answer:
To filter or specify which data to return -> Option CQuick Check:
Query parameters = filter data [OK]
- Thinking query parameters change server settings
- Confusing query parameters with request body
- Assuming query parameters update or delete data
Which of the following is the correct way to add two query parameters type=fruit and color=red to a REST API URL?
Solution
Step 1: Recall query parameter syntax
Query parameters start with '?' and multiple parameters are joined with '&'.Step 2: Check each option's format
api/items?type=fruit&color=red uses '?' then '&' correctly; others misuse separators or order.Final Answer:
api/items?type=fruit&color=red -> Option DQuick Check:
Use '?' then '&' between parameters [OK]
- Using '&' before '?'
- Separating parameters with commas or semicolons
- Mixing order of '?' and '&'
Given the URL api/products?category=books&price_lt=20, what does the query parameter price_lt=20 most likely mean?
Solution
Step 1: Interpret the query parameter name
The suffix '_lt' usually means 'less than' in filtering.Step 2: Apply meaning to the value
price_lt=20 means filter products priced less than 20 units.Final Answer:
Return products with price less than 20 -> Option AQuick Check:
_lt means less than [OK]
- Confusing _lt with equal or greater than
- Ignoring suffix meaning in parameter names
- Assuming price_lt filters prices equal to 20
Identify the error in this URL used to filter users by age and city:api/users?age=30&city;=NewYork
Solution
Step 1: Check parameter separators and assignments
Parameters are separated by '&' and assigned with '='. Here, 'city;=NewYork' uses ';' wrongly.Step 2: Confirm correct syntax
The semicolon should be '=' to assign the value to 'city'.Final Answer:
The semicolon ';' is incorrectly used instead of '=' -> Option AQuick Check:
Use '=' to assign values, not ';' [OK]
- Using semicolon instead of equal sign
- Replacing '&' with '?' between parameters
- Not encoding spaces in values
You want to filter a list of events to show only those happening in 2024 and located in either 'New York' or 'Los Angeles'. Which query parameter format correctly expresses this filter?
Solution
Step 1: Understand filtering multiple values for one parameter
To filter by multiple cities, repeat the parameter with URL-encoded values.Step 2: Check URL encoding and parameter repetition
api/events?year=2024&city=New%20York&city=Los%20Angeles repeats 'city' with URL-encoded spaces, which is standard practice.Final Answer:
api/events?year=2024&city=New%20York&city=Los%20Angeles -> Option BQuick Check:
Repeat parameters with URL encoding for multiple values [OK]
- Using commas without encoding or server support
- Not encoding spaces in city names
- Using '|' which is not standard in URLs
Ready to prove it?
Pass the test and this pattern moves unknown
