Noun-based resource naming in Rest API - Time & Space Complexity
When designing REST APIs, using noun-based resource names helps organize data access clearly.
We want to see how the number of operations grows when accessing resources named as nouns.
Analyze the time complexity of the following REST API endpoint handling.
GET /users
GET /users/{id}
POST /users
GET /users/{id}/orders
This code snippet shows typical noun-based resource paths for users and their orders.
Look at what repeats when the API handles requests.
- Primary operation: Searching or retrieving user or order data from storage.
- How many times: Once per request, but the data size affects how long it takes.
As the number of users or orders grows, the time to find or list them changes.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 users | About 10 checks or reads |
| 100 users | About 100 checks or reads |
| 1000 users | About 1000 checks or reads |
Pattern observation: The time grows roughly in direct proportion to the number of items.
Time Complexity: O(n)
This means the time to handle requests grows linearly with the number of resources.
[X] Wrong: "Naming resources as nouns makes the API faster."
[OK] Correct: The naming style organizes the API but does not change how fast data is found or processed.
Understanding how resource naming relates to request handling helps you explain API design clearly and think about performance.
"What if we changed resource names from nouns to verbs? How would the time complexity of handling requests change?"
Practice
Solution
Step 1: Understand noun-based resource naming
Noun-based naming uses plural nouns to represent collections of resources, making the API intuitive.Step 2: Identify the correct plural noun path
Among the options, only '/books' is a plural noun representing the resource collection without verbs or actions.Final Answer:
/books -> Option DQuick Check:
Noun-based resource = /books [OK]
- Including verbs like 'get' or 'fetch' in the URL
- Using singular nouns for collections
- Adding action words in resource names
Solution
Step 1: Review REST API syntax for single resource
Single resources are accessed by appending the resource ID to the plural noun path.Step 2: Identify the correct syntax
Option '/users/123' correctly uses the plural noun 'users' followed by the ID without verbs or query parameters.Final Answer:
/users/123 -> Option CQuick Check:
Single resource path = /users/123 [OK]
- Adding verbs like 'get' in the path
- Using query parameters instead of path variables
- Using singular noun without ID
GET /orders/456, what does this request represent?Solution
Step 1: Understand HTTP GET method
GET is used to retrieve or read data from the server without modifying it.Step 2: Interpret the endpoint path
The path '/orders/456' points to a single order resource with ID 456.Final Answer:
Retrieve the order with ID 456 -> Option AQuick Check:
GET /orders/456 = Retrieve order 456 [OK]
- Confusing GET with POST or DELETE actions
- Assuming the request modifies data
- Misreading the resource ID
DELETE /deleteUser/789Solution
Step 1: Check resource naming conventions
Resource paths should be nouns, not verbs or actions.Step 2: Analyze the given endpoint
The path '/deleteUser/789' incorrectly includes the verb 'deleteUser' instead of just '/users/789'.Final Answer:
Using a verb 'deleteUser' in the resource path -> Option BQuick Check:
Resource path must be noun, not verb [OK]
- Including action verbs in URL paths
- Confusing HTTP method with URL naming
- Using query parameters unnecessarily
Solution
Step 1: Understand nested resource naming
Comments belong to posts, so nesting comments under posts is clear and RESTful.Step 2: Evaluate the options
Option '/posts/42/comments' uses plural nouns and shows the relationship clearly without verbs or query parameters.Final Answer:
/posts/42/comments -> Option AQuick Check:
Nested plural nouns show resource hierarchy [OK]
- Using verbs in paths like 'getCommentsForPost'
- Using query parameters instead of nested paths
- Using singular nouns inconsistently
Ready to prove it?
Pass the test and this pattern moves unknown
