最近在开发一些http server类型程序,通过spring boot构建一些web程序,这些web程序之间通过http进行数据访问、共享,如下图,
假设现在client发起一次保存数据的请求到server,server可能会返回如下类似的数据
{
"status":1,
"message":"xxxxxx"
}
然后client通过解析json获得status来判断当前的请求操作是否成功,开发过程中通过都是这么做的,但是这样在restful设计中不怎么好,其实这个status字段的表达完全可以通过http status来表示,类似404、500、502这种都有明确的定义并且相互理解、沟通起来也方便。
文章主要记录一下我是如何在spring boot中实现自定反馈状态码的,以及我找到的三种实现方式。
第一种,使用@ResponseStatus。这是一个注解,可以作用在方法和类上面,如下使用,
在方法上使用方式,
@RequestMapping(value = "/user", method = RequestMethod.GET)
@ResponseStatus(code=HttpStatus.INTERNAL_SERVER_ERROR,reason="server error")
public String getUser(){
return "im zhangsan";
}
启动web程序,通过postman访问http://127.0.0.1:8100/user
,会出现下面结果,
{
"timestamp": 1497850427325,
"status": 500,
"