Bird
Raised Fist0
HLDsystem_design~20 mins

REST API best practices in HLD - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
REST API Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
HTTP Methods Usage in REST APIs

Which HTTP method is the most appropriate to update a resource partially in a REST API?

AGET
BPATCH
CPUT
DDELETE
Attempts:
2 left
💡 Hint

Think about the method that allows partial updates without replacing the entire resource.

❓ Architecture
intermediate
2:00remaining
Statelessness in REST APIs

What is the main advantage of designing a REST API to be stateless?

AIt enables the server to handle each request independently without client context.
BIt allows the server to store client session data for faster responses.
CIt requires the client to maintain a persistent connection to the server.
DIt forces the server to keep track of user authentication state.
Attempts:
2 left
💡 Hint

Consider how statelessness affects scalability and server load.

❓ scaling
advanced
2:00remaining
Handling High Traffic in REST APIs

Which strategy best helps a REST API handle sudden spikes in traffic without degrading performance?

AUse synchronous processing for all requests to maintain order.
BStore all client sessions on the server to reduce repeated authentication.
CImplement rate limiting and caching mechanisms.
DDisable load balancers to reduce network overhead.
Attempts:
2 left
💡 Hint

Think about controlling request volume and reducing repeated work.

❓ tradeoff
advanced
2:00remaining
Choosing Between JSON and XML for REST APIs

What is a key tradeoff when choosing JSON over XML as the data format for a REST API?

AXML supports namespaces and schema validation, JSON does not.
BJSON is more verbose but easier to parse than XML.
CJSON requires more bandwidth due to its structure.
DXML is less human-readable compared to JSON.
Attempts:
2 left
💡 Hint

Consider features related to data validation and complexity.

❓ estimation
expert
3:00remaining
Estimating API Server Capacity

You expect 10,000 requests per minute to your REST API. Each request takes 100ms of server processing time. How many concurrent server threads are needed to handle the load without queuing?

AApproximately 10 threads
BApproximately 100 threads
CApproximately 1,000 threads
DApproximately 17 threads
Attempts:
2 left
💡 Hint

Calculate how many requests happen per second and how many can be processed simultaneously.

Practice

(1/5)
1. Which HTTP method is typically used to update an existing resource in a REST API?
easy
A. PUT
B. GET
C. POST
D. DELETE

Solution

  1. Step 1: Understand HTTP methods for REST

    GET retrieves data, POST creates new resources, PUT updates existing resources, DELETE removes resources.
  2. Step 2: Identify method for updating

    PUT is the standard method to update or replace an existing resource in REST APIs.
  3. Final Answer:

    PUT -> Option A
  4. Quick Check:

    Update = PUT [OK]
Hint: Update resource? Think PUT method [OK]
Common Mistakes:
  • Confusing POST with update instead of create
  • Using GET for updates
  • Using DELETE to update
2. Which of the following is the correct way to version a REST API in the URL?
easy
A. /v1/api/resource
B. /api/resource/v1
C. /api/v1/resource
D. /api/resource?version=1

Solution

  1. Step 1: Understand common versioning patterns

    Versioning is often done in the URL path to clearly separate API versions.
  2. Step 2: Identify correct version placement

    Placing version immediately after the base API path, like /api/v1/resource, is standard practice.
  3. Final Answer:

    /api/v1/resource -> Option C
  4. Quick Check:

    Version in path = /api/v1/ [OK]
Hint: Version goes right after /api/ in URL path [OK]
Common Mistakes:
  • Putting version after resource name
  • Using query parameters for versioning
  • Placing version before /api/
3. Given the following API response status codes, which one indicates a successful resource creation?
{
  "status": 201,
  "message": "Created"
}
medium
A. 200 OK
B. 201 Created
C. 400 Bad Request
D. 404 Not Found

Solution

  1. Step 1: Review HTTP status codes for success

    200 means success for general requests, 201 means resource created successfully.
  2. Step 2: Match status code to creation

    201 Created is the correct code to indicate a new resource was successfully created.
  3. Final Answer:

    201 Created -> Option B
  4. Quick Check:

    Creation success = 201 [OK]
Hint: 201 means resource created successfully [OK]
Common Mistakes:
  • Confusing 200 with creation success
  • Using 400 or 404 for success
  • Ignoring status code meaning
4. A developer designed a REST API endpoint as POST /users/delete to delete a user. What is the best fix to follow REST API best practices?
medium
A. Change to GET /users/delete
B. Keep POST /users/delete but add a query param
C. Use PUT /users/delete
D. Change to DELETE /users/{id}

Solution

  1. Step 1: Identify correct HTTP method for deletion

    DELETE method is the standard for removing resources in REST APIs.
  2. Step 2: Correct endpoint structure

    Use resource identifier in URL path like /users/{id} with DELETE method for clarity and REST compliance.
  3. Final Answer:

    Change to DELETE /users/{id} -> Option D
  4. Quick Check:

    Delete resource = DELETE /resource/{id} [OK]
Hint: Use DELETE method with resource ID in URL [OK]
Common Mistakes:
  • Using POST for delete actions
  • Using GET to delete resources
  • Adding delete action in URL path
5. You want to design a REST API that returns a list of products with optional filtering by category and price range. Which approach follows REST API best practices?
hard
A. GET /products?category=electronics&min_price=100&max_price=500
B. POST /products/filter with JSON body containing filters
C. GET /products/filter/category/electronics/price/100-500
D. PUT /products with filter parameters in the body

Solution

  1. Step 1: Understand filtering in REST APIs

    Filtering is best done using query parameters in GET requests to keep APIs simple and cacheable.
  2. Step 2: Evaluate options for filtering

    GET /products?category=electronics&min_price=100&max_price=500 uses GET with query parameters, which is standard and clear. Other options misuse POST or PUT or complex URL paths.
  3. Final Answer:

    GET /products?category=electronics&min_price=100&max_price=500 -> Option A
  4. Quick Check:

    Filter with GET query params [OK]
Hint: Use GET with query parameters for filtering [OK]
Common Mistakes:
  • Using POST or PUT for filtering
  • Embedding filters in URL path segments
  • Sending filters in request body for GET
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard