API 以 404 错误代码响应有效请求但未找到数据
Responding with 404 error code by API for valid request but no data found
我们正在设计一个 API 供我们的一个应用程序使用,API 应该是 return 下一个更高版本,给定查询字符串中提供的版本要求。像这样:
GET /update-available?AppVersion=3.2.3&someotherinfo=ABCD1234
问题是,如果给定一组特定的查询参数没有更新可用,return 代码应该是什么。 (例如,如果应用程序已经有最新版本)。
根据我有限的知识和经验,我们应该发送一个空响应或消息 'no update found' 的 200。
但我的一位同事评论说使用 404 更好,因为 'update-available' 是一个问题,回复是 'not-found' 和适当的响应代码。
对决定更合适的方法有什么帮助吗?
最好的响应状态码是204 No Content
,意思是:"The server successfully processed the request and is not returning any content" (Wiki)
状态码200
也是合适的,因为它是HTTP请求成功的标准响应——/update-available
是一个资源,一个服务,处理的相当成功。服务结果是"no update available",但是
服务本身存在,并且工作正常。
状态代码 404
不合适。原因包括:
4xx
状态码表示"Client Error"。这样的话,客户端就没有问题了。
404
表示 "The requested resource could not be found but may be available in the future."(Wiki)。但是请求的资源(是否有更新服务)可用
- 如果在这种"no update available"情况下使用
404
,当/update-available
路由本身不可用(例如从服务器配置中删除)时应该使用哪个状态码。
我们正在设计一个 API 供我们的一个应用程序使用,API 应该是 return 下一个更高版本,给定查询字符串中提供的版本要求。像这样:
GET /update-available?AppVersion=3.2.3&someotherinfo=ABCD1234
问题是,如果给定一组特定的查询参数没有更新可用,return 代码应该是什么。 (例如,如果应用程序已经有最新版本)。
根据我有限的知识和经验,我们应该发送一个空响应或消息 'no update found' 的 200。
但我的一位同事评论说使用 404 更好,因为 'update-available' 是一个问题,回复是 'not-found' 和适当的响应代码。
对决定更合适的方法有什么帮助吗?
最好的响应状态码是204 No Content
,意思是:"The server successfully processed the request and is not returning any content" (Wiki)
状态码200
也是合适的,因为它是HTTP请求成功的标准响应——/update-available
是一个资源,一个服务,处理的相当成功。服务结果是"no update available",但是
服务本身存在,并且工作正常。
状态代码 404
不合适。原因包括:
4xx
状态码表示"Client Error"。这样的话,客户端就没有问题了。404
表示 "The requested resource could not be found but may be available in the future."(Wiki)。但是请求的资源(是否有更新服务)可用- 如果在这种"no update available"情况下使用
404
,当/update-available
路由本身不可用(例如从服务器配置中删除)时应该使用哪个状态码。