让我们看看具有以下端点的控制器:
@RestController @RequestMapping("v1/hello") public class ExampleController { @GetMapping public ResponseEntity<String> get() { return ResponseEntity.ok("Hello World!"); } }
使用Spring的@RestController注解时,默认将响应放在响应的body中,无需使用 ResponseEntity 输入方法返回,直接输入响应类型即可,如示例下图:
@RestController @RequestMapping("v1/hello") public class ExampleController { @GetMapping public String get() { return "Hello World!"; } }
另外,默认情况下,如果成功,端点中使用的状态码是200(OK),也就是说,只有当你想使用其他状态时才需要更改它,并且不需要使用ResponseEntity,只需使用注解即可@ResponseStatus以上方法:
@RestController @RequestMapping("v1/hello") public class ExampleController { @GetMapping @ResponseStatus(HttpStatus.ACCEPTED) public String get() { return "Hello World!"; } }
那么为什么ResponseEntity存在?
对于需要向响应添加更多信息而不仅仅是正文和状态的情况,例如向响应添加标头:
@RestController @RequestMapping("v1/hello") public class ExampleController { @GetMapping public ResponseEntity<String> get() { return ResponseEntity.ok() .header("X-Test", "Blabla") .body("Hello World!"); } }
以上是何时使用 ResponseEntity?的详细内容。更多信息请关注PHP中文网其他相关文章!