Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is query parameter versioning in REST APIs?
Query parameter versioning is a way to specify the API version by adding a version number as a parameter in the URL query string, for example: /api/resource?version=1.
Click to reveal answer
beginner
Why use query parameter versioning?
It allows clients to request a specific API version without changing the URL path. This keeps the base URL stable and makes versioning flexible.
Click to reveal answer
beginner
How does the server know which version to serve when using query parameter versioning?
The server reads the version number from the query parameter (like ?version=2) and returns the response formatted for that version.
Click to reveal answer
beginner
Give an example of a URL using query parameter versioning.
An example URL is https://api.example.com/users?version=1, where version=1 tells the server to use version 1 of the API.
Click to reveal answer
intermediate
What is a potential downside of query parameter versioning?
One downside is that caching systems might treat URLs with different query parameters as separate resources, which can complicate caching strategies.
Click to reveal answer
What does query parameter versioning add to the API request URL?
AA version number in the request header
BA version number in the URL path
CA version number in the query string
DA version number in the request body
✗ Incorrect
Query parameter versioning uses the query string to specify the API version, like ?version=1.
Which of these URLs uses query parameter versioning?
A/api/users?version=2
B/api/v2/users
C/api/users
D/api/users/version/2
✗ Incorrect
The version number is passed as a query parameter in option A.
What is a benefit of query parameter versioning?
AKeeps the base URL unchanged
BRequires changing the URL path
CDoes not allow versioning
DOnly works with POST requests
✗ Incorrect
Query parameter versioning keeps the base URL stable and adds version info in the query string.
How does the server identify the API version in query parameter versioning?
ABy reading the request header
BBy reading the request body
CBy reading the URL path segment
DBy reading the query parameter value
✗ Incorrect
The server looks at the query parameter, such as ?version=1, to determine the version.
What is a possible drawback of query parameter versioning?
AIt is not supported by REST APIs
BCaching can be less efficient
CIt cannot support multiple versions
DIt requires changing the URL path
✗ Incorrect
Different query parameters can cause caching systems to treat requests as different resources, complicating caching.
Explain how query parameter versioning works in REST APIs and why it might be used.
Think about how the version is passed and how the server uses it.
You got /4 concepts.
Describe one advantage and one disadvantage of using query parameter versioning.
Consider URL stability and caching behavior.
You got /2 concepts.
Practice
(1/5)
1. What is the main purpose of using query parameter versioning in REST APIs?
easy
A. To change the main URL path for each API version
B. To allow clients to specify which API version they want using a query string
C. To hide the API version from clients
D. To force all clients to use the latest API version only
Query parameter versioning lets clients add a version number in the URL query string, like ?version=1.
Step 2: Identify the purpose of this method
This allows clients to choose which API version to use without changing the main URL path.
Final Answer:
To allow clients to specify which API version they want using a query string -> Option B
Quick Check:
Query parameter versioning = client selects version [OK]
Hint: Version in query string means client chooses API version [OK]
Common Mistakes:
Thinking versioning changes the main URL path
Assuming versioning hides API versions
Believing all clients must use latest version only
2. Which of the following is the correct way to request version 2 of an API using query parameter versioning?
easy
A. GET /api/resource/version=2
B. GET /api/version/2/resource
C. GET /api/resource?version=2
D. GET /api/resource#version=2
Solution
Step 1: Recall query parameter syntax in URLs
Query parameters come after a question mark ? and use key=value pairs, e.g., ?version=2.
Step 2: Match the correct syntax for versioning
The correct way to specify version 2 is by adding ?version=2 after the resource path.
Final Answer:
GET /api/resource?version=2 -> Option C
Quick Check:
Query param syntax = ?key=value [OK]
Hint: Query parameters start with ? and use key=value [OK]
Common Mistakes:
Using slashes instead of query parameters
Using # instead of ? for query parameters
Placing version inside the URL path incorrectly
3. Given this API endpoint code snippet handling versioning:
def get_data(request):
version = request.GET.get('version', '1')
if version == '1':
return 'Data from v1'
elif version == '2':
return 'Data from v2'
else:
return 'Unknown version'
What will be the output if the client calls /api/data?version=2?
medium
A. "Data from v2"
B. "Unknown version"
C. "Data from v1"
D. Error: version parameter missing
Solution
Step 1: Extract version from query parameters
The code gets the version from the query string. If missing, it defaults to '1'. Here, version='2'.
Step 2: Check version conditions
Since version is '2', the code returns 'Data from v2'.
Final Answer:
"Data from v2" -> Option A
Quick Check:
version=2 returns v2 data [OK]
Hint: Check query param value matches version condition [OK]
Common Mistakes:
Assuming default version is always used
Confusing string and integer comparison
Expecting error when version is provided
4. Consider this code snippet for versioning:
def api_handler(request):
version = request.GET['version']
if version == '1':
return 'Version 1'
else:
return 'Other version'
What error will occur if the client calls /api/data without a version parameter?
medium
A. KeyError because 'version' key is missing
B. SyntaxError in code
C. Returns 'Version 1' by default
D. Returns 'Other version'
Solution
Step 1: Understand how version is accessed
The code uses request.GET['version'] which raises KeyError if 'version' is missing.
Step 2: Analyze call without version parameter
Calling without ?version=... means 'version' key is missing, causing KeyError.
Final Answer:
KeyError because 'version' key is missing -> Option A
Quick Check:
Missing key access causes KeyError [OK]
Hint: Access query keys safely to avoid KeyError [OK]
Common Mistakes:
Assuming default version is used automatically
Expecting no error when parameter is missing
Confusing KeyError with SyntaxError
5. You want to support versions 1 and 2 of your API using query parameter versioning. Version 1 returns a list of users as strings, and version 2 returns a list of user objects with 'name' and 'id'. Which approach correctly handles this in a single endpoint?
hard
A. Return an error if version parameter is missing or unknown
B. Change the URL path to /v1/users and /v2/users instead of query parameters
C. Ignore the version parameter and always return the latest format
D. Use ?version=1 to return ['Alice', 'Bob'], and ?version=2 to return [{'name':'Alice','id':1},{'name':'Bob','id':2}]