Bird
Raised Fist0
Spring Bootframework~20 mins

ResponseEntity for full response control in Spring Boot - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
ResponseEntity Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the HTTP status code returned by this Spring Boot controller method?
Consider this Spring Boot controller method using ResponseEntity:
public ResponseEntity greet() {
    return ResponseEntity.status(201).body("Created greeting");
}

What HTTP status code will the client receive?
Spring Boot
public ResponseEntity<String> greet() {
    return ResponseEntity.status(201).body("Created greeting");
}
A200 OK
B201 Created
C404 Not Found
D500 Internal Server Error
Attempts:
2 left
💡 Hint
Look at the status method used in ResponseEntity.
❓ state_output
intermediate
2:00remaining
What is the response body content returned here?
Given this Spring Boot controller method:
public ResponseEntity getMessage() {
    return ResponseEntity.ok("Hello World");
}

What will be the exact content in the HTTP response body?
Spring Boot
public ResponseEntity<String> getMessage() {
    return ResponseEntity.ok("Hello World");
}
AHello World
B"Hello World"
Cnull
DAn empty string
Attempts:
2 left
💡 Hint
ResponseEntity.ok() sets the body to the string passed.
📝 Syntax
advanced
2:00remaining
Which option correctly creates a ResponseEntity with a custom header and status 202?
You want to return a ResponseEntity with status 202 Accepted and a custom header "X-Custom" with value "Value". Which code snippet is correct?
Areturn ResponseEntity.status(202).header("X-Custom", "Value").body("Accepted");
Breturn ResponseEntity.header("X-Custom", "Value").status(202).body("Accepted");
Creturn ResponseEntity.body("Accepted").status(202).header("X-Custom", "Value");
Dreturn ResponseEntity.body("Accepted").header("X-Custom", "Value").status(202);
Attempts:
2 left
💡 Hint
Check the order of method calls on ResponseEntity builder.
🔧 Debug
advanced
2:00remaining
What is the result of this ResponseEntity usage?
Analyze this Spring Boot method:
public ResponseEntity errorExample() {
    return ResponseEntity.body("Missing status");
}

What happens when this code runs?
Spring Boot
public ResponseEntity<String> errorExample() {
    return ResponseEntity.body("Missing status");
}
ACompilation error: body() is not a static method
BCompilation error: missing import for ResponseEntity
CRuntime NullPointerException
DReturns HTTP 200 with body "Missing status"
Attempts:
2 left
💡 Hint
ResponseEntity.body(T) is a static factory method that returns 200 OK.
🧠 Conceptual
expert
3:00remaining
Which ResponseEntity usage correctly returns a 204 No Content with no body?
You want to return a response with HTTP status 204 No Content and no response body. Which code snippet correctly does this?
Areturn ResponseEntity.status(204).body(null);
Breturn ResponseEntity.status(204).body("");
Creturn ResponseEntity.noContent().build();
Dreturn ResponseEntity.ok().body(null);
Attempts:
2 left
💡 Hint
204 status means no body is allowed in the response.

Practice

(1/5)
1. What is the main purpose of using ResponseEntity in a Spring Boot REST controller?
easy
A. To control the HTTP status, headers, and body of the response
B. To automatically map JSON to Java objects
C. To handle database transactions
D. To configure application properties

Solution

  1. Step 1: Understand ResponseEntity role

    ResponseEntity is designed to give full control over HTTP response details like status code, headers, and body.
  2. Step 2: Compare with other options

    Mapping JSON, handling transactions, or configuring properties are unrelated to ResponseEntity's purpose.
  3. Final Answer:

    To control the HTTP status, headers, and body of the response -> Option A
  4. Quick Check:

    ResponseEntity controls full HTTP response [OK]
Hint: ResponseEntity controls status, headers, and body [OK]
Common Mistakes:
  • Confusing ResponseEntity with JSON mapping
  • Thinking it manages database operations
  • Assuming it configures app settings
2. Which of the following is the correct way to create a ResponseEntity with status 404 and a body message "Not Found"?
easy
A. return ResponseEntity.create(404, "Not Found");
B. return ResponseEntity.body("Not Found").status(404);
C. return new ResponseEntity<>("Not Found", 404);
D. return ResponseEntity.status(404).body("Not Found");

Solution

  1. Step 1: Check ResponseEntity builder methods

    The correct builder pattern is to call status() first, then body().
  2. Step 2: Validate options

    return ResponseEntity.status(404).body("Not Found"); uses status(404).body("Not Found") correctly. return ResponseEntity.body("Not Found").status(404); reverses the order, which is invalid. return new ResponseEntity<>("Not Found", 404); uses a constructor but 404 should be HttpStatus, not int. return ResponseEntity.create(404, "Not Found"); uses a non-existent method.
  3. Final Answer:

    return ResponseEntity.status(404).body("Not Found"); -> Option D
  4. Quick Check:

    Use status().body() chaining [OK]
Hint: Call status() before body() to build ResponseEntity [OK]
Common Mistakes:
  • Calling body() before status()
  • Using integer instead of HttpStatus enum
  • Using non-existent ResponseEntity methods
3. Given the code snippet:
return ResponseEntity.status(HttpStatus.CREATED)
    .header("Location", "/items/123")
    .body("Item created");

What will be the HTTP status and headers in the response?
medium
A. Status 201 Created with no headers
B. Status 201 Created with header Location: /items/123
C. Status 200 OK with header Location: /items/123
D. Status 404 Not Found with header Location: /items/123

Solution

  1. Step 1: Analyze status method

    The code sets status to HttpStatus.CREATED which is 201.
  2. Step 2: Analyze header method

    The header method adds a "Location" header with value "/items/123".
  3. Final Answer:

    Status 201 Created with header Location: /items/123 -> Option B
  4. Quick Check:

    Status = 201, Header Location set [OK]
Hint: status() sets code, header() adds headers [OK]
Common Mistakes:
  • Assuming default 200 OK status
  • Forgetting headers are added by header()
  • Confusing status codes meanings
4. Identify the error in this Spring Boot controller method:
@GetMapping("/test")
public ResponseEntity<String> test() {
    return ResponseEntity.body("Hello").status(HttpStatus.OK);
}
medium
A. HttpStatus.OK is not a valid status
B. ResponseEntity.body() cannot be used without new keyword
C. The order of method calls is incorrect; status() must come before body()
D. The method must return String, not ResponseEntity

Solution

  1. Step 1: Check method chaining order

    ResponseEntity builder requires calling status() before body(). Here, body() is called first, which is invalid.
  2. Step 2: Validate other options

    ResponseEntity.body() is a static method returning a builder, no new keyword needed. HttpStatus.OK is valid. Returning ResponseEntity<String> is correct for REST.
  3. Final Answer:

    The order of method calls is incorrect; status() must come before body() -> Option C
  4. Quick Check:

    Call status() before body() [OK]
Hint: Always call status() before body() in ResponseEntity [OK]
Common Mistakes:
  • Calling body() before status()
  • Trying to instantiate ResponseEntity with new
  • Confusing return types in controller
5. You want to return a JSON response with status 202 Accepted, a custom header "X-Request-ID" set to "abc123", and a body containing a Map with key "message" and value "Processing". Which code snippet correctly achieves this?
hard
A. return ResponseEntity.status(HttpStatus.ACCEPTED) .header("X-Request-ID", "abc123") .body(Map.of("message", "Processing"));
B. return ResponseEntity.body(Map.of("message", "Processing")) .header("X-Request-ID", "abc123") .status(HttpStatus.ACCEPTED);
C. return new ResponseEntity<>(Map.of("message", "Processing"), HttpStatus.ACCEPTED, Map.of("X-Request-ID", "abc123"));
D. return ResponseEntity.create(HttpStatus.ACCEPTED, Map.of("message", "Processing")) .header("X-Request-ID", "abc123");

Solution

  1. Step 1: Use correct builder pattern

    ResponseEntity builder requires calling status() first, then header(), then body().
  2. Step 2: Validate options

    return ResponseEntity.status(HttpStatus.ACCEPTED) .header("X-Request-ID", "abc123") .body(Map.of("message", "Processing")); follows correct chaining and uses Map.of for body. return ResponseEntity.body(Map.of("message", "Processing")) .header("X-Request-ID", "abc123") .status(HttpStatus.ACCEPTED); calls body() first, invalid order. return new ResponseEntity<>(Map.of("message", "Processing"), HttpStatus.ACCEPTED, Map.of("X-Request-ID", "abc123")); uses a constructor with three arguments which does not exist. return ResponseEntity.create(HttpStatus.ACCEPTED, Map.of("message", "Processing")) .header("X-Request-ID", "abc123"); uses a non-existent create() method.
  3. Final Answer:

    return ResponseEntity.status(HttpStatus.ACCEPTED) .header("X-Request-ID", "abc123") .body(Map.of("message", "Processing")); -> Option A
  4. Quick Check:

    status() -> header() -> body() chaining [OK]
Hint: Chain status(), then header(), then body() for full control [OK]
Common Mistakes:
  • Calling body() before status()
  • Using non-existent ResponseEntity constructors
  • Trying to use create() method which doesn't exist
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