如何在spring数据休息中添加自定义状态代码

时间:2015-04-13 08:23:14

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

我在做Spring Data REST。按照这里描述的简单开始示例:http://spring.io/guides/gs/accessing-data-rest/我有一个我正在考虑的问题。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

每当没有要返回的元素时,抛出此异常。

您也可以使用HttpServletResponse进行游戏。