【问题标题】:What HTTP code should my API use if the resource does not exist如果资源不存在,我的 API 应该使用什么 HTTP 代码
【发布时间】:2016-12-14 10:22:03
【问题描述】:

在 REST API 中,如果客户端调用不存在的资源,我应该使用哪个 HTTP 代码?

例如:

GET /messsssssssages/42

我已经映射了所有其他 http 代码(找不到资源 = 404 等...),但我无法决定如何映射这个。

【问题讨论】:

  • 为什么不坚持404?
  • 我在 404 和 400 之间犹豫不决。据我了解,在 REST API 中,404 是针对此处未找到的资源(数据库中不存在 ID),这显然是一个路由错误。应该是404吗?我不知道...

标签: rest api http


【解决方案1】:

404 未找到

服务器没有找到任何匹配 Request-URI 的东西。没有说明这种情况是暂时的还是永久性的。如果服务器通过一些内部可配置的机制知道旧资源永久不可用并且没有转发地址,则应该使用 410 (Gone) 状态代码。当服务器不希望确切地揭示请求被拒绝的原因时,通常使用此状态码。

您可以将 404 Not found 映射到没有具有该 ID 的实例的有效资源,也可以将 404 映射到没有该名称的资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 2011-04-19
    • 2011-07-30
    • 2013-01-18
    相关资源
    最近更新 更多