我们正在设计一个供我们的应用程序使用的API,并且API应该返回下一个更高版本,给定请求的查询字符串中提供的版本。像这样:
GET /update-available?AppVersion=3.2.3&someotherinfo=ABCD1234
问题是如果在给定一组特定查询参数的情况下没有可用的更新,那么返回代码应该是什么。 (例如,如果应用程序已经有最新版本)。
根据我有限的知识和经验,我们应该发送一个空的回复200或者说“没有找到更新”的消息。
但我的一位同事评论说使用404更好,因为更新可用'是一个问题,答案是“未找到”'和适当的响应代码。
在决定什么是更合适的方法时有任何帮助?
答案 0 :(得分:1)
最佳响应状态代码为204 No Content
,表示:"服务器成功处理了请求,并且未返回任何内容" (Wiki)
状态代码200
也是合适的,因为它是成功的HTTP请求的标准响应 - /update-available
是一个资源,一个服务,它处理得非常成功。服务结果是"没有可用的更新",但是
服务本身存在,并且工作正常。
状态代码404
不合适。原因包括:
4xx
状态代码表示"客户端错误"。在这种情况下,客户端没有任何问题。404
表示"找不到请求的资源,但将来可能会提供。"(Wiki)。但是,所请求的资源(是否可以更新的服务)是可用的。404
,则无法使用更新" case,当/update-available
路由本身不可用时(例如从服务器配置中删除),应使用哪个状态代码。