对于 RESTful api "add to cart" 购物车中已有的现有商品,应使用哪种 HTTP 方法?

Which HTTP method to use for RESTful api for "add to cart" an existing item already in cart?

我已经开始在我的 RESTful API 中将 addToCart 方法设计为 HTTP POST。当客户端第一次将产品添加到购物车时(POST 在服务器上创建一个新条目),这看起来不错。但是,当客户端浏览该站点并再次添加相同的项目时,相同的 HTTP 规则就会中断;我们不应在此处创建新条目,而应仅更新现有项目的数量。

是不是使用POST更新资源有误?实现这个的方法是什么?或者如何解读这种情况。

注意:使用我的 api 的 Client/UI 前端将不记得它是否已经在服务器上。请以任何电子商务应用程序的 addtocart 为例。

您可以使用 PATCH 发送部分对象/更新现有对象。

它基于您的模型。恕我直言,如果您要使用它对新意图或购物车操作进行建模,POST 也很好,基本上可以是任何东西。

我认为这里的困难已经存在于如何将原始商品添加到购物车中。

当您将商品添加到购物车时,您是在创建一个新对象(商品)吗?或者您正在修改现有项目(购物车)?对我来说,说后者更有意义。当您向商店添加新商品时,发布商品似乎应该为不同的情况保留。

从概念上讲,购物车就像是商店中所有商品的向量,与一个数字相关联(几乎所有商品都为 0)。将东西添加到购物车意味着增加其中一件商品的数量,无论它是否已经超过 0。