Java 创建RESTWeb服务时如何实现购物车功能?

Java 创建RESTWeb服务时如何实现购物车功能?,java,spring,rest,jakarta-ee,Java,Spring,Rest,Jakarta Ee,我正在为数字服务创建一个应用商店。我希望用户能够选择不同数量的多个产品,然后再确认订单并支付服务费用。这要求某些东西保持状态。发件人: 来自任何客户端的每个请求都包含为请求提供服务所需的所有信息,并且会话状态保存在客户端中 我有一个状态,我需要保留在某个地方,我也有一个流。我可以管理流量,但我不知道该如何存储和存储在何处。用户可以在结账前向购物车添加多个产品 我曾经想到过这样一个端点,每次您想要某样东西时,您都会发布一个购物车项目对象 POST /shopping-cart 但是如果我理解正确

我正在为数字服务创建一个应用商店。我希望用户能够选择不同数量的多个产品,然后再确认订单并支付服务费用。这要求某些东西保持状态。发件人:

来自任何客户端的每个请求都包含为请求提供服务所需的所有信息,并且会话状态保存在客户端中

我有一个状态,我需要保留在某个地方,我也有一个流。我可以管理流量,但我不知道该如何存储和存储在何处。用户可以在结账前向购物车添加多个产品

我曾经想到过这样一个端点,每次您想要某样东西时,您都会发布一个
购物车项目
对象

POST /shopping-cart
但是如果我理解正确的话,我不应该使用HTTP会话?我看到有人说要把它存储在数据库中,但你们会使用内存数据库吗?如果用户不确认并付款,我应该何时刷新数据库?我可能需要一些关于我应该做什么来保持它的简单和RESTful的输入

我使用Spring4.x和JavaEE作为记录

但是如果我理解正确的话,我不应该使用HTTP会话

我看到有人说要把它存储在数据库中,但你们会使用内存数据库吗

您应该保存在磁盘存储数据库中。这允许您向服务器添加节点,而不必担心将所有请求从一个客户端路由到同一个节点

如果用户不确认并付款,我应该何时刷新数据库


这是一个商业决定

我更喜欢当我的机器崩溃时,我回到一个网站,发现我的购物车里还有我的东西,所以我投票支持数据库。许多网站确实会将购物车保存14天。@Jacobson Mattison Okey,谢谢:)好的,所以我为购物车、购物车项目等创建普通实体,然后像往常一样将其保存在数据库中?用户购买产品后,你会如何处理购物车?删除它,或者只是将其标记为已付款?记住一件事,永远不要删除任何内容。只需设置一个标志:删除。购买时也一样。。这是我的观点!:D@LuckyLuke这就是我的建议,是的。你的购物车能撑多久也是一个商业决定。我可能会将其实现为每个用户一个购物车,将项目移除并添加到订单中,而不是多个购物车,但我对您的项目一无所知。:-)@LMG“从不”是一个很长的时间。最终,这种数据需要从实时数据库迁移到备份或/dev/null。