RESOURCE NOT FOUND (404) 什么时候合适?

When is RESOURCE NOT FOUND (404) appropriate?

我一直在与同事讨论是否响应 404 或 400(错误请求)给定 url 的不同错误部分。

假设我们有一个提供产品的端点。但产品是细分的,取决于国家、渠道(如 b2b 或 b2c)等因素。

在 url 喜欢

/myapi/v1/{country}/{channel}/products/{product-id}

如果来电者给了我一个错误的 "product-id"。

,我很清楚要回复 RESOURCE NOT FOUND

但是 "country" 呢? 我认为 "country" 不是当前 url 提供的资源,因此响应(在提供的 "country" 错误的情况下)应该是 BAD REQUEST。 其他人认为整个 url 就像资源的签名,错误的 "country" 将导致失败 return 200,因此 RESOURCE NOT FOUND 应该是响应状态。

哪个是正确的状态?什么是正确的问题?

这肯定还是404,不要把url看成一长串的参数,而是把url看成一个整体的标识符。在您的特定示例中,标识符没有指向任何东西,但它不是无效的 url.

这里404最合适