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最合适
我一直在与同事讨论是否响应 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最合适