【问题标题】:Is 404 the right return code for a resource that currently doesn't exist?404 是当前不存在的资源的正确返回码吗?
【发布时间】:2016-01-24 09:49:49
【问题描述】:

我正在设计一个用于调查交付的 API。每隔一段时间,客户就会轮询调查并检查是否有可供该用户使用的调查。

如果调查存在,我会返回它(200 OK)。

但如果目前没有安排调查,返回 404 是否合适?

资源确实不存在,但同时404是“客户端错误”,返回感觉不对,因为没有发生错误。回复的意思是“目前没有调查。稍后再检查”。什么是合适的响应代码?

【问题讨论】:

  • 如果访问不存在的资源(例如违反合同)是一个错误,则 400 可能会更好。民意调查机制感觉......奇怪。
  • 是的,返回 404 状态代码和一个漂亮的页面是合适的,上面写着“目前没有调查。稍后再检查”。

标签: api rest http


【解决方案1】:

如果没有可用的调查(或者如果有多个调查可用)而不是“获取调查”API,那么它的行为必须不一致 - 最好创建一个“获取调查列表”API,即无论此列表是空的、仅包含一个元素还是包含多个元素,都始终成功。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 2014-04-18
    • 1970-01-01
    • 2013-08-21
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多