当前位置: 首页 > 知识库问答 >
问题:

REST创建具有复合id的资源

魏煜祺
2023-03-14

我有3分贝实体。产品-id,名称。/产品订单-id,日期。/Orders OrderDetail-OrderID,productId,Price。订单/{orderId}/orderDetails

谢了!

共有1个答案

东方化
2023-03-14

如果将orderdetail视为资源(可以对其使用HTTP谓词),则还应该为其提供自己的标识,而不是依赖于其值的标识。

使用您的URL方案,您不能使用不同的尺寸或颜色订购两次相同的产品(假设产品id与尺寸或颜色无关)。如果更新更改了产品ID,则不能放置OrderDetail的更新版本。

也许这个缺陷来自于DB表设计(无论出于什么原因),它决定不使用订单详细信息id,也许您无法更改它。

    null

我使用下一个url orders/{orderId}/orderdetails/{productId}并传递带有新价格的有效负载

我总是在有效载荷中传递完整的信息,即订单id、产品id和价格,而不依赖有效载荷和URL之间的混合。

 类似资料:
  • 我有一个JPA实体的类层次结构,基类是定义了一个ID的MappedSuperclass。我试图在子类中使用复合键,但这似乎不起作用

  • 我在使用聚合框架从MongoDB读取文档时遇到了问题:我的结果中总是得到空ID。这只发生在具有复合ID的文档中。我尝试了各种版本的spring-data-mongob(1.10.12, 2.0.7),结果相同。 实体定义类 测试代码 输出 调试到以下方法MappingMongoConverter。read(final mongopersistenentity entity、final Docume

  • 我正在构建一个REST api,以提供对此资源和子资源的访问,如和。 这是我提出的URI: /customers/{id}/relationship-返回上述资源 /customers/{id}/relationships/accounts-返回子资源 /customers/{id}/relationships/profiles-返回子资源

  • 我使用spring数据rest作为CRUD。但是当实体具有复合主键时,我不知道如何通过给出主键来获得一个实体。 河流等级: RiverPK类: Riverdoo级: 然后我可以通过调用get http://localhost:8080/river/获取河流数据,还可以通过调用post http://localhost:8080/river/{river json}为db创建新的实体 river j

  • 我目前正在用spring boot和mysql创建一个微服务来管理拍卖信息。我创建了一个-对象和一个-对象。除了bid和Offer的一些属性之外,这里最重要的是Offer和bid之间的-关系,因为显然每个Offer都可以有多个相关的bid。 我使用默认的-接口进行数据库交互,并通过输入数据和测试是否能够得到正确的输出来测试数据库结构。这一切都运行良好,但当我试图测试输入数据的服务endpoint时

  • 我们是一个电子商务网站,希望创建API给我们的客户提供一个接口,通过这个API发送产品相关信息。我们目前需要3种类型的产品信息: 基本细节:如价格、颜色等 映像:产品映像 评论:该产品的评论 方法1:允许客户端通过单个API发送所有信息。 方法2:为所有子资源创建不同的API。 方法3:使用层次URI为所有子资源创建不同的API。