将@ResponseBody 迁移到 ResponseEntity
Migrating @ResponseBody to ResponseEntity
我有一个旧控制器,其方法returns 一个对象作为 json 并标有@ResponseBody。
问题是状态代码总是 200,尽管有时不是。
当前方法签名是:
public MyResponse myMethod(){}
我想将其更改为:
public ResponseEntity<MyResponse> myMethod(){}
所有这些都不是问题,但我担心使用此控制器的客户端将无法解析响应。那可能吗? Spring 用另一个对象包装响应吗?
根据@RequestMapping (https://docs.spring.io/spring/docs/3.0.x/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html) 的 javadoc,ResponseEntity 的主体将被展开并写入响应输出流。所以输出应该是一样的。
当前版本 (https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-return-types) 的文档基本上说了同样的话。
Controller 将 return http 200 如果它执行无异常。
如果你 return ResponseEntity 对象 HttpStatus.OK 它应该工作。
我有一个旧控制器,其方法returns 一个对象作为 json 并标有@ResponseBody。
问题是状态代码总是 200,尽管有时不是。
当前方法签名是:
public MyResponse myMethod(){}
我想将其更改为:
public ResponseEntity<MyResponse> myMethod(){}
所有这些都不是问题,但我担心使用此控制器的客户端将无法解析响应。那可能吗? Spring 用另一个对象包装响应吗?
根据@RequestMapping (https://docs.spring.io/spring/docs/3.0.x/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html) 的 javadoc,ResponseEntity 的主体将被展开并写入响应输出流。所以输出应该是一样的。
当前版本 (https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-return-types) 的文档基本上说了同样的话。
Controller 将 return http 200 如果它执行无异常。 如果你 return ResponseEntity 对象 HttpStatus.OK 它应该工作。