我正在创建一个RESTful API,它将处理许多用户交互,包括使用存储的信用卡下订单。
如果订单成功,我将返回200 OK,如果订单请求格式错误或无效,我将返回400 Bad Request。但是,如果订单的实际处理过程中出现问题,我应该退货吗?
- 客户端向服务器发送POSTS命令以获取用户资源。如果用户不存在,则返回404 Not Found。
- 订单格式和信息已验证。如果无效,则返回400 Bad Request。
- 订单已处理。如果订单成功,则为订单返回201 Created。如果遇到意外错误,则返回500服务器错误。
最后一步是问题-如果由于其他原因导致订单未完成,我该怎么办?可能的情况包括:
- 产品售罄
- 达到用户最大订单数限制
- 信用卡交易失败(资金不足等)
这似乎不适合400或500。如果没有更好的代码,如果我能将其视为400,则根据业务规则,该请求无效。它似乎并不准确。
编辑:还发现了同一主题的现有讨论。那里的所有答案似乎都指向针对这种类型的违规使用状态码,并在使用400、409或422扩展名之间进行了一些讨论。