如何在 spring 数据 rest 中添加自定义状态码

How to add custom status code in spring data rest

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

查询 "curl http://localhost:8080/people/search/findByLastName?name=Baggins" 将 return HTTP 状态 200,(正常)即使没有找到结果(json 将是 {})。我怎样才能使它成为 return HTTP 状态 404(当没有找到结果时)。

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

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

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

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

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

你也可以玩HttpServletResponse