gpt4 book ai didi

spring - 对象的 REST Controller 类删除方法 responseType 为空

转载 作者:行者123 更新时间:2023-12-05 09:15:05 29 4
gpt4 key购买 nike

我的其余 Controller 类中有以下方法

@DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteMovieById(@PathVariable Integer id) {
try {
service.deleteMovieById(id);
responseEntity = new ResponseEntity<String>("Movie Deleted", HttpStatus.OK);
} catch (MovieNotFoundException e) {
**//Confused over here**
} catch (Exception e) {
responseEntity = new ResponseEntity<String>("Unable delete movie", HttpStatus.INTERNAL_SERVER_ERROR);
}
return responseEntity;
}

如果在删除电影时找不到电影对象,我很困惑应该响应代码什么

  1. NOT FOUND (404):通常我们将它用于未找到的 URI/URL,但这里的 URL/URI 是正确的,仅请求我的内容(电影 ID),但不在数据库中。
  2. 我看到 NOT FOUND(404) 在许多示例中使用,即使没有内容匹配也是如此。
  3. 在这个 404 中是正确的选项那么什么时候使用 204(No Content)?

所以谁能给我清楚的关于这些的图片

最佳答案

我认为 404 绝对是正确的方法。客户端正在尝试对特定资源执行某些操作。在这种情况下删除它。当找不到资源并因此无法执行删除时,对我来说唯一明确的响应似乎是 404。

毕竟 404 是一个客户端错误,指定客户端引用的资源也无法找到,否则请求本身是有效的。

204 表示服务器成功处理了请求但没有返回任何内容。但是,由于从未找到该资源,因此未成功删除该资源。所以204不适用。

关于spring - 对象的 REST Controller 类删除方法 responseType 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53117336/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com