Home  >  Article  >  Java  >  How to Return HTTP 400 Errors from Spring MVC @ResponseBody Methods Returning Strings?

How to Return HTTP 400 Errors from Spring MVC @ResponseBody Methods Returning Strings?

DDD
DDDOriginal
2024-11-01 12:15:30699browse

How to Return HTTP 400 Errors from Spring MVC @ResponseBody Methods Returning Strings?

Handling HTTP 400 Errors in Spring MVC @ResponseBody Methods Returning String

In Spring MVC, it's common to use @ResponseBody for JSON APIs. However, handling errors can be challenging when the method returns a String. This article explores the simplest way to respond with an HTTP 400 error in such scenarios.

In the example provided:

@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public String match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        // TODO: how to respond with e.g. 400 "bad request"?
    }
    return json;
}

To return an HTTP 400 error, the simplest approach is to modify the return type of the method to ResponseEntity<>. This will allow you to use the following code for 400 responses:

return new ResponseEntity<>(HttpStatus.BAD_REQUEST);

For successful requests, you can use:

return new ResponseEntity<>(json, HttpStatus.OK);

Alternatively, for Spring 4.1 and later, you can leverage helper methods in ResponseEntity:

return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);

And for successful requests:

return ResponseEntity.ok(json);

By using ResponseEntity<>, you can easily handle HTTP errors in your @ResponseBody methods while maintaining a straightforward and clean implementation.

The above is the detailed content of How to Return HTTP 400 Errors from Spring MVC @ResponseBody Methods Returning Strings?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn