【问题标题】:How to add custom status code in spring data rest如何在 Spring Data Rest 中添加自定义状态码
【发布时间】:2015-04-13 08:23:13
【问题描述】:

我正在做 Spring Data REST。遵循此处描述的简单入门示例:http://spring.io/guides/gs/accessing-data-rest/ 我正在考虑一个问题。

即使没有找到结果,查询“curl http://localhost:8080/people/search/findByLastName?name=Baggins”也会返回 HTTP 状态 200,(OK)(json 将为 {})。如何让它返回 HTTP 状态 404(未找到结果时)。

文档只提到了标准状态码:http://docs.spring.io/spring-data/rest/docs/current/reference/html/#repository-resources

【问题讨论】:

  • 您正在搜索,空的结果是完全有效的。现在,当您对特定资源执行 GET 操作时,在这种情况下(恕我直言),404 就没有意义了。
  • 肯定是有效的意见,但它仍然不能回答问题。

标签: java spring rest http-status-code-404 spring-data


【解决方案1】:

首先,当您没有结果时返回 404 不是一个好主意。您应该返回状态204 No Content

您可以创建一个带有 ResponseStatus 注释的自定义异常(我建议使用这种方法):

@ResponseStatus(value = HttpStatus.NO_CONTENT)
     public class NoElementsFoundException extends Exception {
}

只要你没有要返回的元素,你就会抛出这个异常。

你也可以和HttpServletResponse一起玩。

【讨论】:

    猜你喜欢
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2016-01-21
    • 2017-08-15
    • 2018-04-18
    • 1970-01-01
    • 2020-02-17
    相关资源
    最近更新 更多