我在做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
答案 0 :(得分:1)
首先,当您没有结果时返回404并不是一个好主意。您应该返回状态204 No Content
。
您可以创建使用ResponseStatus
注释的自定义异常(我建议使用此方法):
@ResponseStatus(value = HttpStatus.NO_CONTENT)
public class NoElementsFoundException extends Exception {
}
每当没有要返回的元素时,抛出此异常。
您也可以使用HttpServletResponse
进行游戏。