【发布时间】:2015-09-27 17:16:58
【问题描述】:
我正在使用 Spring Boot 构建 REST 服务。我的控制器带有 @RestController 注释。出于调试目的,我想拦截每个控制器方法生成的ResponseEntity(如果可能)。然后我希望构建一个新的ResponseEntity,它在某种程度上基于控制器生成的ResponseEntity。最后,新生成的ResponseEntity 将替换控制器生成的ResponseEntity,并作为响应的一部分返回。
我只希望在调试应用程序时能够做到这一点。否则我希望控制器生成的标准响应返回给客户端。
例如我有控制器
@RestController
class SimpleController
@RequestMapping(method=RequestMethod.GET, value="/getname")
public NameObject categories()
{
return new NameObject("John Smith");
}
}
class NameObject{
private String name;
public NameObject(name){
this.name = name;
}
public String getName(){ return name; }
}
这将生成响应:
{"name" : "John Smith"}
但我想更改响应以包含实际响应的状态信息,例如:
{"result": {"name" : "John Smith"}, "status" : 200 }
任何指针表示赞赏。
【问题讨论】:
-
您最好的选择可能是创建一个自定义
HttpMessageConverter来拦截您的响应并将其包装在另一个带有状态码的对象中。例如:stackoverflow.com/questions/21349030/…
标签: java spring spring-mvc spring-boot