通常在spring boot中我们使用ResponseEntity返回类型作为rest控制器,它可以包含或 HttpStatus 或 {HttpEntity,HttpStatus}对。
例如:
@DeleteMapping(value = "api/greetings/{id}")
public ResponseEntity<Greeting> deleteGreeting(@PathVariable("id") BigInteger id) {
boolean deleted = delete(id);
if (!deleted) {
return new ResponseEntity<Greeting>(HttpStatus.NOT_MODIFIED);
}
return new ResponseEntity<Greeting>(HttpStatus.OK);
}
正如您在此处所见,我只返回 HttpStatus。
所以问题是:
1.在这种情况下,什么应该是正确的返回类型?:
如何告诉(在编程语言:))该方法将返回仅 HttpStatus,并以某种方式阻止返回某事的可能性其他(HttpEntity)?
如果您要发送 状态和正文,则表示“阻止”我的意思是您会收到编译错误。
2. MediaType分配给“DeleteMapping”注释的“生成”属性应该是什么?:
如何判断它不应该产生任何东西?
P.S。这可能是一个初学者的问题,但我没有找到任何解释在这种情况下使用的技术的来源。
可能的解决方案:创建限制未解决
这是可能的解决方案,但我认为应该有更好的方法:
@DeleteMapping(value = "api/greetings/{id}")
public ResponseEntity<?> deleteGreeting(@PathVariable("id") BigInteger id) {
boolean deleted = delete(id);
if (!deleted) {
return new ResponseEntity<>(HttpStatus.NOT_MODIFIED);
}
return new ResponseEntity<>(HttpStatus.OK);
}