Java Spring Boot中如何创建并返回自定义HTTP响应状态码
Spring 自定义HTTP响应状态码实现方案
你可以直接通过传入整型数值的方式定义自定义状态码,不需要局限于HttpStatus枚举提供的标准值,修改后的代码参考如下:
@RequestMapping(value = "/status/test", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<Test> testStatus(@RequestBody Test test) throws Exception { // 声明自定义234状态码 int customStatusCode = 234; // 直接使用状态码数值构造响应 return ResponseEntity.status(customStatusCode).body(test); // 如果你需要获取HttpStatus对象也可以用valueOf方法构造 // HttpStatus customStatus = HttpStatus.valueOf(234); // return new ResponseEntity<Test>(test, customStatus); }
使用自定义状态码的注意事项:
- 尽量让自定义状态码符合HTTP协议的区间规则:2xx对应成功类业务、3xx对应重定向类业务、4xx对应客户端触发的错误类业务、5xx对应服务端触发的错误类业务,降低和未来新增标准状态码冲突的概率
- 上线前需要确认业务链路中的反向代理、API网关、WAF等中间件支持透传非标准HTTP状态码,部分中间件默认会拦截或改写不识别的状态码
- 如果同一个自定义状态码需要在多个接口使用,建议封装为全局常量统一管理,避免硬编码
内容的提问来源于stack exchange,提问作者ab AL
相关产品推荐
相关产品推荐

