Car*_*rio 8 java spring http spring-boot
我有一个SpringBoot控制器,我想为异常返回正确的http代码状态.所以,我的问题是:哪个http statu代码更适合Exception的"500"或"409"?
这是我的代码:
@PostMapping(value = {"", "/"})
public ResponseEntity<Response> create(@RequestBody StudioDto studioDto,
ServletRequest servletRequest, ServletResponse servletResponse) {
Response response = new Response();
try {
studioService.createStudio(studioDto);
response.setMessage("The studio was create");
response.setStatusCode(HttpServletResponse.SC_CREATED);
} catch (Exception e) {
response.setMessage("Op we have a little problem");
response.setErrorMessage(e.getMessage());
//Which one
//this one 5xx
response.setStatusCode(500);
//Or this one 4xx
response.setStatusCode(409);
}
return new ResponseEntity(response, response.getHttpStatus());
}
Run Code Online (Sandbox Code Playgroud)
托德建立了很好的联系。这是一种更好的思考方式:
1××信息性
2××成功
3××重定向
4××客户端错误* 400错误的请求* 401未经授权... * 405方法不允许...
5××服务器错误* 500内部服务器错误* 501未实现* 502错误的网关...
换句话说,每个主数(200、400、500等)都是CATEGORY。您可以通过在“类别”中选择特定的错误来“优化”错误代码。
对您的原始问题:
如果客户端请求 “错误”(例如,非法的用户名/密码),则返回4xx。
如果服务器以某种方式失败(例如,您无法读取数据库),则返回5xx。
HTTP错误代码的“官方”列表是RFC 7231:
https://tools.ietf.org/html/rfc7231
| 归档时间: |
|
| 查看次数: |
21696 次 |
| 最近记录: |