Bird
Raised Fist0
Rest APIprogramming~20 mins

Why batch operations reduce round trips in Rest API - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Batch Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding batch operations and network round trips

Why do batch operations reduce the number of network round trips in REST APIs?

ABecause batch operations combine multiple requests into one, reducing the number of separate network calls.
BBecause batch operations compress data to make each request smaller.
CBecause batch operations use a faster network protocol than normal requests.
DBecause batch operations cache responses locally to avoid sending requests.
Attempts:
2 left
💡 Hint

Think about how sending many small packages compares to sending one big package.

❓ Predict Output
intermediate
2:00remaining
Output of batch request simulation

Consider this Python code simulating batch vs single requests. What is the output?

Rest API
import time

def single_requests(n):
    total_time = 0
    for _ in range(n):
        time.sleep(0.1)  # simulate network delay
        total_time += 0.1
    return total_time

def batch_request(n):
    time.sleep(0.1)  # simulate one batch delay
    return 0.1

print(f"Single requests total time: {single_requests(5)} seconds")
print(f"Batch request total time: {batch_request(5)} seconds")
A
Single requests total time: 0.5 seconds
Batch request total time: 0.5 seconds
B
Single requests total time: 0.5 seconds
Batch request total time: 0.1 seconds
C
Single requests total time: 0.1 seconds
Batch request total time: 0.5 seconds
D
Single requests total time: 0.1 seconds
Batch request total time: 0.1 seconds
Attempts:
2 left
💡 Hint

Each single request waits 0.1 seconds, batch waits once.

❓ Predict Output
advanced
2:00remaining
What is the output of this batch API call simulation?

Given this JavaScript code simulating batch API calls, what is logged?

Rest API
async function simulateBatch() {
  const delay = ms => new Promise(res => setTimeout(res, ms));
  async function singleCall(id) {
    await delay(100);
    return `Response ${id}`;
  }
  async function batchCall(ids) {
    await delay(100);
    return ids.map(id => `Response ${id}`);
  }

  const singleResults = [];
  for (let i = 1; i <= 3; i++) {
    singleResults.push(await singleCall(i));
  }

  const batchResults = await batchCall([1, 2, 3]);

  console.log(singleResults);
  console.log(batchResults);
}
simulateBatch();
A
["Response 1", "Response 2", "Response 3"]
["Response 1", "Response 2", "Response 3"]
B
["Response 3"]
["Response 1", "Response 2", "Response 3"]
C
["Response 1"]
["Response 1", "Response 2", "Response 3"]
D
["Response 1", "Response 2", "Response 3"]
["Response 3"]
Attempts:
2 left
💡 Hint

Both single and batch calls return arrays of responses for ids 1 to 3.

🧠 Conceptual
advanced
2:00remaining
Why batch operations improve API efficiency beyond fewer round trips

Besides reducing the number of network round trips, what is another key reason batch operations improve API efficiency?

AThey automatically retry failed requests without client intervention.
BThey encrypt data more securely than single requests.
CThey reduce server processing overhead by handling multiple requests together.
DThey guarantee faster database queries by caching results.
Attempts:
2 left
💡 Hint

Think about how handling many requests at once can save work on the server side.

🚀 Application
expert
3:00remaining
Calculate total network time with and without batching

You have 10 API calls. Each call takes 50ms network latency plus 100ms server processing. If you batch all calls into one request, the network latency is 50ms once and server processing is 100ms times 10 calls. What is the total time difference between batching and sending calls individually?

ABatching takes 500ms, individual calls take 1000ms, so batching saves 500ms.
BBatching takes 550ms, individual calls take 1500ms, so batching saves 950ms.
CBatching takes 1050ms, individual calls take 1050ms, so no time is saved.
DBatching takes 1050ms, individual calls take 1500ms, so batching saves 450ms.
Attempts:
2 left
💡 Hint

Calculate total time for individual calls: (latency + processing) * number of calls. For batch: latency once + processing for all calls.

Practice

(1/5)
1. Why do batch operations reduce the number of round trips in REST APIs?
easy
A. Because they send requests one by one quickly
B. Because they use a faster internet connection
C. Because they skip server authentication
D. Because they combine multiple requests into a single network call

Solution

  1. Step 1: Understand what a round trip means in REST APIs

    A round trip is when your app sends a request to the server and waits for a response.
  2. Step 2: Explain how batch operations affect round trips

    Batch operations group many requests into one, so only one round trip is needed instead of many.
  3. Final Answer:

    Because they combine multiple requests into a single network call -> Option D
  4. Quick Check:

    Batch requests reduce round trips = Because they combine multiple requests into a single network call [OK]
Hint: Batch means group requests to send once [OK]
Common Mistakes:
  • Thinking batch speeds internet connection
  • Believing batch skips authentication
  • Assuming batch sends requests separately
2. Which of the following is the correct way to send a batch request in JSON format?
easy
A. {"requests": [{"method": "GET", "url": "/users"}]}
B. [{"method": "GET", "url": "/users"}]
C. {"request": {"method": "GET", "url": "/users"}}
D. {"methods": ["GET"], "urls": ["/users"]}

Solution

  1. Step 1: Identify the standard batch request format

    Batch requests usually wrap multiple requests inside a "requests" array in a JSON object.
  2. Step 2: Match the correct JSON structure

    {"requests": [{"method": "GET", "url": "/users"}]} correctly uses {"requests": [...]}, while others miss this structure or use wrong keys.
  3. Final Answer:

    {"requests": [{"method": "GET", "url": "/users"}]} -> Option A
  4. Quick Check:

    Batch JSON uses "requests" array = {"requests": [{"method": "GET", "url": "/users"}]} [OK]
Hint: Batch JSON wraps requests in a "requests" array [OK]
Common Mistakes:
  • Using array without key "requests"
  • Using singular "request" instead of plural
  • Separating methods and URLs into different arrays
3. Consider this pseudo-code for sending batch requests:
batch = [
  {"method": "GET", "url": "/items/1"},
  {"method": "GET", "url": "/items/2"}
]
response = send_batch(batch)
print(len(response))
What will be the output?
medium
A. 1
B. 2
C. 0
D. Error

Solution

  1. Step 1: Understand the batch request content

    The batch contains two GET requests for two different items.
  2. Step 2: Analyze the response length

    Each request in the batch returns one response, so the response list length is 2.
  3. Final Answer:

    2 -> Option B
  4. Quick Check:

    Batch of 2 requests returns 2 responses = 2 [OK]
Hint: Batch response count matches request count [OK]
Common Mistakes:
  • Assuming batch returns single combined response
  • Expecting zero because of batch
  • Thinking batch causes error without reason
4. You wrote this batch request code but it fails:
batch = {
  "requests": {
    "method": "GET",
    "url": "/data"
  }
}
response = send_batch(batch)
What is the main error?
medium
A. The URL should be a full URL, not a path
B. The method should be lowercase "get"
C. The "requests" key should hold a list, not a single object
D. Batch requests cannot use GET method

Solution

  1. Step 1: Check the "requests" value type

    Batch requests expect "requests" to be a list of request objects, not a single object.
  2. Step 2: Identify the error cause

    Using an object instead of a list causes the batch to fail because it expects multiple requests.
  3. Final Answer:

    The "requests" key should hold a list, not a single object -> Option C
  4. Quick Check:

    Batch "requests" must be a list = The "requests" key should hold a list, not a single object [OK]
Hint: "requests" must be a list even for one request [OK]
Common Mistakes:
  • Using single object instead of list for "requests"
  • Changing HTTP method case unnecessarily
  • Thinking full URL is always required
  • Believing GET is disallowed in batch
5. You want to update 100 user records via a REST API. Which approach best reduces round trips and improves efficiency?
hard
A. Send a single batch request containing all 100 updates
B. Send 100 separate PUT requests, one per user
C. Send one PUT request with only the first user update
D. Send 10 batch requests each with 5 updates

Solution

  1. Step 1: Compare sending many requests vs batch

    Sending 100 separate requests causes 100 round trips, which is slow and inefficient.
  2. Step 2: Evaluate batch request benefits

    A single batch request with all 100 updates reduces round trips to 1, saving time and network use.
  3. Final Answer:

    Send a single batch request containing all 100 updates -> Option A
  4. Quick Check:

    One batch request for many updates = Send a single batch request containing all 100 updates [OK]
Hint: One batch request beats many single requests [OK]
Common Mistakes:
  • Sending many separate requests wastes round trips
  • Sending partial updates misses data
  • Splitting into many small batches adds overhead
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