Spring Rest控制器仅返回状态(限制返回响应值)

时间:2017-07-17 22:28:00

标签: java spring-boot coding-style response spring-restcontroller

通常在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);
}

0 个答案:

没有答案