ResponseEntity 理解

2020-05-06  本文已影响0人  定格r

ResponseEntity是一种泛型类型。因此,我们可以使用任何类型作为响应主体:

@Controller
public class XXXController{

 @GetMapping("/hello")
 public ResponseEntity<String> hello() {
   return new ResponseEntity<>("Hello World!", HttpStatus.OK);
}

这里字符串"Hello World!"作为字符串返回给REST端。
我们可以设置HTTP标头:

@GetMapping("/customHeader")
ResponseEntity<String> customHeader() {
   HttpHeaders headers = new HttpHeaders();
   headers.add("Custom-Header", "foo");

   return new ResponseEntity<>(
         "Custom header set", headers, HttpStatus.OK);
}

设置自定义标头:

@GetMapping("/customHeader")
ResponseEntity<String> customHeader() {
   return ResponseEntity.ok()
         .header("Custom-Header", "foo")
         .body("Custom header set")

如果将一个对象放入:

@GetMapping("/hello")
 public ResponseEntity<String> hello() {
   return new ResponseEntity<>(new User(‘jdon’), HttpStatus.OK);
 }

返回的是JSON字符串:

[ { ‘name’: 'jdon'}]

下面是返回对象的JSON列表:

public ResponseEntity<List<ProcessDef>> repositoryProcessDefinitionsGet() {
   return new ResponseEntity<>(processDefRepo.findAll(), HttpStatus.FOUND);
}

常用 ResponseEntity 状态:

ResponseEntity.badRequest().build();   //400: 参数不合法
ResponseEntity.notFound().build();     //404:资源服务器找不到
ResponseEntity.ok(categories);         //200:查询成功

详细参考:https://www.jianshu.com/p/7893169a7c93

上一篇下一篇

猜你喜欢

热点阅读