15

我正在寻找正确的状态代码以通过 api 发送一般故障。

确切的情况是无法将产品添加到购物车。

失败可能有很多原因,但我想返回一个 http 代码。

哪个最好?

我一直在浏览它们,看不到任何完全符合这里需求的东西。

一些可能的故障情况可能是:

Not enough stock to satisfy
Stock limit reached for that particular product
Product no longer available
4

1 回答 1

19

如果是服务器错误,则应为 500。如果是客户端错误,请使用 400。

如果没有看到 URI 以及你用它做什么,很难比这更精确。例如,如果“产品不再可用”是 GET 请求的结果,那么它应该是 404(未找到)。但如果是 POST 请求,则应该是 200 或 202。

对于另外两个,他们可能不是错误的。可能是客户端发送了正确的请求,但库存已被其他人消耗,在这种情况下服务器应该返回 409 (conflict) 。如果从一开始就要求库存过多,那么它应该只是 200/202。

如果您必须只有一个代码,只需使用 400 和 200(见上文)。

于 2013-06-05T16:26:05.777 回答