我们正在用Java实现REST API。
对于GET REST端点,如果我进行搜索:
如果找到任何记录/记录,则它将返回200状态代码和结果/结果。
如果未找到任何记录,那么正确的HTTP状态代码是什么?
当我在Google和SO中搜索时,我发现了不同的答案,例如:
200 with empty list (if the API response is item but NOT list, then I can't send empty list)
204 No Content
404 Not Found
如果找不到记录或未找到搜索结果,正确的HTTP状态代码是什么?
答案 0 :(得分:1)
有两种不同的情况:
要检索没有项目的资源集合(例如GET /products?name=foo
)的表示,请返回200
,并带有一个空数组。
要检索不存在的单个资源(例如GET /products/1
)的表示形式,请返回404
。
例如,PUT
操作将导致使用204
状态代码,从而允许服务器指示该操作已成功应用于目标资源。它不适用于上述情况。
有关更多详细信息,请参见this answer。