如何在 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
。
我正在做 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
。