我正在编写一个用于验证促销代码的微服务。客户端向我发送促销代码和产品ID(json)。有200好的情况下代码是好的,我为他们的订单申请折扣。但是有一个错误的例子,促销代码并不适用于此产品。我不确定要使用哪种响应代码。
这也应该是200 OK(有某种消息说代码验证失败了吗?)
应该是400 Bad Request?
似乎两者都不合适,但是当它不是" OK"然而4x通常用于表示请求/ http的结构有问题时,它很难说200 OK协议 - 在这种情况下,请求的结构很好。
答案 0 :(得分:3)
我将是第二个史蒂夫斯。 422似乎是一个不错的选择。
恕我直言,如果请求失败,你绝不应该使用200.
使用错误代码&如有必要,请在回复正文中提供详细信息:
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{ "reason": 1, "text": "Invalid promo code." }
第二个想法,我认为403非常适合这里:
HTTP/1.1 403 Forbidden
Content-Type: application/json
{ "reason": "bad_promo_code" }
最终,it doesn't matter只要记录在案。
答案 1 :(得分:0)
我会建议409:
10.4.10 409冲突
由于与当前冲突,请求无法完成 资源状态。此代码仅在以下情况下允许 预计用户可能能够解决冲突 重新提交请求。