Bird
Raised Fist0
Spring Bootframework~20 mins

@PutMapping and @DeleteMapping in Spring Boot - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Spring Boot REST Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What happens when a @PutMapping method returns void?
Consider a Spring Boot REST controller method annotated with @PutMapping that returns void. What is the HTTP response status code by default when this method completes successfully?
Spring Boot
    @PutMapping("/items/{id}")
    public void updateItem(@PathVariable String id, @RequestBody Item item) {
        // update logic
    }
AHTTP 200 OK with empty body
BHTTP 204 No Content
CHTTP 201 Created
DHTTP 404 Not Found
Attempts:
2 left
💡 Hint
Think about what HTTP status means no content is returned.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in this @DeleteMapping method
Which option correctly fixes the syntax error in this @DeleteMapping method?
Spring Boot
    @DeleteMapping("/users/{id}")
    public ResponseEntity deleteUser(@PathVariable Long id) {
        userService.delete(id);
        return ResponseEntity.ok().build();
    }
ARemove the return statement
BChange @DeleteMapping to @GetMapping
CAdd a semicolon after userService.delete(id);
DChange @PathVariable Long id to @RequestParam Long id
Attempts:
2 left
💡 Hint
Look for missing punctuation in Java statements.
❓ state_output
advanced
2:00remaining
What is the response body of this @PutMapping method?
Given the following @PutMapping method, what will be the HTTP response body when updating an item successfully?
Spring Boot
    @PutMapping("/products/{id}")
    public ResponseEntity<Product> updateProduct(@PathVariable Long id, @RequestBody Product product) {
        Product updated = productService.update(id, product);
        return ResponseEntity.ok(updated);
    }
AThe updated Product object serialized as JSON
BAn empty response body with HTTP 204 status
CA plain text message 'Product updated successfully'
DHTTP 404 error if product not found
Attempts:
2 left
💡 Hint
Look at what is returned inside ResponseEntity.ok()
🔧 Debug
advanced
2:00remaining
Why does this @DeleteMapping method cause a 405 Method Not Allowed error?
A client sends a DELETE request to /orders/123 but receives a 405 Method Not Allowed error. Which option explains the most likely cause?
Spring Boot
    @GetMapping("/orders/{id}")
    public Order getOrder(@PathVariable Long id) {
        return orderService.findById(id);
    }
AThe orderService.findById method throws an exception
BThere is no @DeleteMapping method for /orders/{id}, only @GetMapping exists
CThe client request method is incorrect and should be GET
DThe @GetMapping method is missing @DeleteMapping annotation
Attempts:
2 left
💡 Hint
Check which HTTP methods the controller supports for the URL.
🧠 Conceptual
expert
3:00remaining
Which statement about @PutMapping and @DeleteMapping is true?
Select the correct statement about the behavior of @PutMapping and @DeleteMapping in Spring Boot controllers.
A@PutMapping and @DeleteMapping cannot be used together in the same controller class.
B@PutMapping always creates new resources; @DeleteMapping returns the deleted resource in the response body.
C@PutMapping and @DeleteMapping require the HTTP request body to be empty.
D@PutMapping is idempotent and typically used to update resources; @DeleteMapping is idempotent and used to remove resources.
Attempts:
2 left
💡 Hint
Think about HTTP method semantics and REST principles.

Practice

(1/5)
1. What is the primary purpose of the @PutMapping annotation in Spring Boot?
easy
A. To handle HTTP GET requests for retrieving data
B. To handle HTTP PUT requests for updating existing resources
C. To handle HTTP POST requests for creating new resources
D. To handle HTTP DELETE requests for removing resources

Solution

  1. Step 1: Understand HTTP methods

    HTTP PUT is used to update existing data on the server.
  2. Step 2: Match annotation to HTTP method

    @PutMapping maps HTTP PUT requests to controller methods.
  3. Final Answer:

    To handle HTTP PUT requests for updating existing resources -> Option B
  4. Quick Check:

    @PutMapping = update data [OK]
Hint: Put means update existing data via HTTP PUT [OK]
Common Mistakes:
  • Confusing @PutMapping with @PostMapping
  • Thinking @PutMapping creates new data
  • Mixing HTTP methods like GET or DELETE
2. Which of the following is the correct syntax to define a method that deletes a resource by ID using @DeleteMapping?
easy
A. @DeleteMapping("/items/{id}") public void deleteItem(int id) {}
B. @DeleteMapping("/items") public void deleteItem(int id) {}
C. @DeleteMapping("/items/{id}") public void deleteItem(@PathVariable int id) {}
D. @DeleteMapping("/items") public void deleteItem(@RequestParam int id) {}

Solution

  1. Step 1: Identify correct URL pattern and annotation

    To delete by ID, URL should include path variable like /items/{id} and method parameter annotated with @PathVariable.
  2. Step 2: Check method signature matches path variable

    @DeleteMapping("/items/{id}") public void deleteItem(@PathVariable int id) {} correctly uses @DeleteMapping with path and @PathVariable int id parameter.
  3. Final Answer:

    @DeleteMapping("/items/{id}") public void deleteItem(@PathVariable int id) {} -> Option C
  4. Quick Check:

    Delete by ID needs @PathVariable and matching URL [OK]
Hint: Use @PathVariable with URL {id} in @DeleteMapping [OK]
Common Mistakes:
  • Omitting @PathVariable annotation
  • Using @RequestParam instead of @PathVariable for path params
  • Not matching method parameter to URL placeholder
3. Given the following Spring Boot controller method, what will happen when a PUT request is sent to /users/5 with a valid JSON body?
@PutMapping("/users/{id}")
public User updateUser(@PathVariable int id, @RequestBody User user) {
    user.setId(id);
    return userService.save(user);
}
medium
A. The user with ID 5 will be updated with the JSON data and returned
B. A new user will be created ignoring the ID in the URL
C. The request will fail because @RequestBody is missing
D. The user ID will not be set and cause an error

Solution

  1. Step 1: Analyze method parameters and annotations

    The method uses @PutMapping with path variable id and @RequestBody user object. It sets user ID from path.
  2. Step 2: Understand method behavior on PUT request

    It updates the user ID to match URL, then calls save to update and returns updated user.
  3. Final Answer:

    The user with ID 5 will be updated with the JSON data and returned -> Option A
  4. Quick Check:

    PUT updates resource with URL ID and JSON body [OK]
Hint: PUT with @RequestBody updates resource using URL ID [OK]
Common Mistakes:
  • Assuming PUT creates new resource instead of updating
  • Ignoring @PathVariable ID and using JSON ID only
  • Missing @RequestBody causing request failure
4. Identify the error in this Spring Boot controller method intended to delete a user by ID:
@DeleteMapping("/users")
public void deleteUser(@PathVariable int id) {
    userService.deleteById(id);
}
medium
A. The URL does not include the path variable placeholder {id}
B. The method should use @RequestParam instead of @PathVariable
C. The method should return a value instead of void
D. The @DeleteMapping annotation is missing

Solution

  1. Step 1: Check URL and method parameters

    The method expects @PathVariable int id but URL is "/users" without {id} placeholder.
  2. Step 2: Understand path variable binding

    Without {id} in URL, Spring cannot bind path variable, causing error.
  3. Final Answer:

    The URL does not include the path variable placeholder {id} -> Option A
  4. Quick Check:

    Path variable needs matching {id} in URL [OK]
Hint: Match @PathVariable with {id} in URL path [OK]
Common Mistakes:
  • Forgetting to add {id} in URL path
  • Using @PathVariable without URL placeholder
  • Confusing @RequestParam with @PathVariable
5. You want to implement a REST API in Spring Boot that updates a product's price only if the product exists, otherwise returns 404. Which combination of annotations and code best achieves this using @PutMapping?
hard
A. @PutMapping("/products/{id}") public Product updatePrice(@RequestParam int id, @RequestBody Product p) { p.setId(id); return productService.save(p); }
B. @PutMapping("/products") public Product updatePrice(@RequestBody Product p) { productService.save(p); return p; }
C. @PutMapping("/products/{id}") public void updatePrice(@PathVariable int id, @RequestBody Product p) { productService.save(p); }
D. @PutMapping("/products/{id}") public ResponseEntity<Product> updatePrice(@PathVariable int id, @RequestBody Product p) { return productService.findById(id) .map(existing -> { existing.setPrice(p.getPrice()); productService.save(existing); return ResponseEntity.ok(existing); }) .orElse(ResponseEntity.notFound().build()); }

Solution

  1. Step 1: Check for product existence before update

    @PutMapping("/products/{id}") public ResponseEntity<Product> updatePrice(@PathVariable int id, @RequestBody Product p) { return productService.findById(id) .map(existing -> { existing.setPrice(p.getPrice()); productService.save(existing); return ResponseEntity.ok(existing); }) .orElse(ResponseEntity.notFound().build()); } uses productService.findById(id) to check if product exists, returning 404 if not.
  2. Step 2: Update price only if product found and return proper HTTP response

    The map lambda updates the price on the existing product, saves it, and returns ResponseEntity.ok(existing); orElse returns notFound().
  3. Final Answer:

    @PutMapping("/products/{id}") public ResponseEntity<Product> updatePrice(@PathVariable int id, @RequestBody Product p) { return productService.findById(id) .map(existing -> { existing.setPrice(p.getPrice()); productService.save(existing); return ResponseEntity.ok(existing); }) .orElse(ResponseEntity.notFound().build()); } -> Option D
  4. Quick Check:

    Check existence, update, return 404 if missing [OK]
Hint: Check existence first, then update and return ResponseEntity [OK]
Common Mistakes:
  • Not checking if product exists before update
  • Using @RequestParam instead of @PathVariable for ID
  • Not returning 404 when product missing
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