Bird
Raised Fist0
Rest APIprogramming~20 mins

Long-running operations (async responses) in Rest API - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Async Operation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
1:00remaining
What is the HTTP status code returned for an accepted long-running operation?
Consider a REST API that starts a long-running operation and immediately returns a response. What HTTP status code should the server return to indicate the request was accepted but processing is not complete?
A202 Accepted
B404 Not Found
C200 OK
D500 Internal Server Error
Attempts:
2 left
💡 Hint
Think about the status code that means the request is accepted but still processing.
❓ Predict Output
intermediate
1:00remaining
What is the typical HTTP header used to provide the URL for checking operation status?
When a long-running operation is accepted, the server often provides a URL where the client can check the status. Which HTTP header is commonly used to provide this URL?
ALocation
BRetry-After
CContent-Type
DAuthorization
Attempts:
2 left
💡 Hint
This header tells the client where to find the resource or status.
❓ Predict Output
advanced
1:30remaining
What is the expected JSON response when polling a long-running operation that is still in progress?
A client polls the status URL of a long-running operation. The operation is still running. What JSON response should the server return to indicate this?
Rest API
HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "InProgress"
}
A{ "status": "Unknown" }
B{ "status": "Failed", "error": "Timeout" }
C{ "status": "Completed", "result": {...} }
D{ "status": "InProgress" }
Attempts:
2 left
💡 Hint
The status should clearly say the operation is still running.
❓ Predict Output
advanced
1:30remaining
What is the correct final JSON response when a long-running operation completes successfully?
After polling, the long-running operation finishes successfully. What JSON response should the server return?
Rest API
HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "Succeeded",
  "result": {
    "message": "Operation completed"
  }
}
A{ "status": "Failed", "error": "Timeout" }
B{ "status": "InProgress" }
C{ "status": "Succeeded", "result": { "message": "Operation completed" } }
D{ "status": "Cancelled" }
Attempts:
2 left
💡 Hint
The status should indicate success and include the result.
🧠 Conceptual
expert
2:00remaining
Which HTTP method is best suited for starting a long-running operation that creates a resource asynchronously?
You want to design a REST API where clients start a long-running operation that creates a new resource asynchronously. Which HTTP method should you use to start this operation?
AGET
BPOST
CPUT
DDELETE
Attempts:
2 left
💡 Hint
Think about which method is used to create resources or trigger actions.

Practice

(1/5)
1. What is the main purpose of using long-running operations with async responses in REST APIs?
easy
A. To make the server process all requests instantly.
B. To let clients start a task and check its progress later without waiting.
C. To block the client until the task finishes.
D. To avoid using URLs for task status.

Solution

  1. Step 1: Understand client-server interaction in async operations

    Clients start a task and receive a URL to check progress later, avoiding waiting.
  2. Step 2: Identify the benefit of async responses

    This approach keeps apps responsive and user-friendly by not blocking clients.
  3. Final Answer:

    To let clients start a task and check its progress later without waiting. -> Option B
  4. Quick Check:

    Async responses = clients check progress later [OK]
Hint: Async means start task, check later URL [OK]
Common Mistakes:
  • Thinking server processes all requests instantly
  • Assuming client waits for task completion
  • Ignoring the use of status URLs
2. Which HTTP status code is typically returned immediately by a REST API to indicate a long-running operation has started asynchronously?
easy
A. 200 OK
B. 404 Not Found
C. 202 Accepted
D. 500 Internal Server Error

Solution

  1. Step 1: Recall HTTP status codes for async start

    202 Accepted means the request is accepted but processing is not complete yet.
  2. Step 2: Compare with other codes

    200 OK means completed, 404 means missing resource, 500 means server error.
  3. Final Answer:

    202 Accepted -> Option C
  4. Quick Check:

    Async start = 202 Accepted [OK]
Hint: 202 means accepted but not done yet [OK]
Common Mistakes:
  • Using 200 OK for async start
  • Confusing 404 with async status
  • Assuming 500 means task started
3. Given this REST API response after starting a long-running task:
{"status": "accepted", "status_url": "/tasks/123/status"}

What should the client do next to get the task result?
medium
A. Send a DELETE request to /tasks/123/status to cancel the task.
B. Send a POST request to /tasks/123/status to get the result.
C. Wait for the server to push the result automatically.
D. Send a GET request to /tasks/123/status to check progress.

Solution

  1. Step 1: Identify the purpose of status_url

    The status_url is provided for the client to check the task progress or result.
  2. Step 2: Determine correct HTTP method to check status

    GET requests are used to retrieve information, so client should GET the status URL.
  3. Final Answer:

    Send a GET request to /tasks/123/status to check progress. -> Option D
  4. Quick Check:

    Check progress = GET status URL [OK]
Hint: Use GET on status URL to check progress [OK]
Common Mistakes:
  • Using POST instead of GET to check status
  • Expecting server to push result without polling
  • Using DELETE to check or cancel unintentionally
4. A developer wrote this code to start a long-running task and check its status:
response = start_task()
if response.status_code == 202:
    status_url = response.json()["status_url"]
    result = requests.post(status_url)
    print(result.json())

What is the error in this code?
medium
A. Using POST instead of GET to check the status URL.
B. Not checking if status_url exists in the response.
C. Not handling the case when status_code is not 202.
D. Printing result without parsing JSON.

Solution

  1. Step 1: Review HTTP method used to check status

    The code uses POST to check status, but status URLs require GET requests.
  2. Step 2: Confirm other parts of code

    Checking status_url existence and status_code handling are good practices but not the main error here.
  3. Final Answer:

    Using POST instead of GET to check the status URL. -> Option A
  4. Quick Check:

    Status check = GET, not POST [OK]
Hint: Status check always uses GET method [OK]
Common Mistakes:
  • Using POST instead of GET for status check
  • Ignoring missing status_url key
  • Not handling unexpected status codes
5. You want to design a REST API endpoint for a long-running image processing task. Which approach best follows async response principles?
hard
A. Client POSTs image, server returns 202 Accepted with a status URL; client polls status URL until done.
B. Client POSTs image, server processes image immediately and returns 200 OK with result.
C. Client POSTs image, server returns 404 Not Found if task is slow.
D. Client POSTs image, server holds connection open until processing finishes.

Solution

  1. Step 1: Understand async response design

    Server accepts task, returns 202 with status URL for client to poll progress.
  2. Step 2: Evaluate other options

    Immediate processing (200 OK) blocks client; 404 is wrong status; holding connection open blocks client.
  3. Final Answer:

    Client POSTs image, server returns 202 Accepted with a status URL; client polls status URL until done. -> Option A
  4. Quick Check:

    Async design = 202 + status URL + polling [OK]
Hint: Async = 202 + status URL + client polls [OK]
Common Mistakes:
  • Returning 200 OK immediately for slow tasks
  • Using 404 for slow processing
  • Keeping connection open until done
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