我正在将 Spring Boot 用于简单的 REST API,如果出现故障,我希望返回正确的 HTTP 状态码。
@RequestMapping(value="/rawdata/", method = RequestMethod.PUT)
@ResponseBody
@ResponseStatus( HttpStatus.OK )
public RestModel create(@RequestBody String data) {
// code ommitted..
// how do i return a correct status code if something fails?
}
作为 Spring 和 Spring Boot 的新手,基本问题是当事情正常或失败时我如何返回不同的状态码?
原文由 Marco 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用几个选项。相当好的方法是使用异常和类来处理称为
@ControllerAdvice
:您也可以将
HttpServletResponse
传递给控制器方法并设置响应代码:有关详细信息,请参阅这篇很棒的博客文章: Spring MVC 中的异常处理
笔记
在 Spring MVC 中使用
@ResponseBody
注释是多余的 - 它已经包含在@RestController
注释中。