【发布时间】:2023-04-05 17:08:02
【问题描述】:
我正在为销售订单对象构建 OData 服务。为简单起见,假设销售订单对象有 2 个实体 - 标题和项目。从业务角度来看,Header 具有根据 Item 金额值更新的 Total Amount。
现在我有一个客户端应用程序,其中 Header 和 Items 都被获取和显示。当客户端应用程序获取订单时,Header 实体具有 Etag HE1,而 Item 实体(假设只有 1 个项目)具有 Etag 值 IE1。
客户端应用程序更新项目金额值。对 Item 进行 PATCH 调用,导致 Item Etag 从 IE1 -> IE2 更改。然而,即使没有对 Header 进行显式更新,由于 Total Amount 计算逻辑,Header Etag 在技术上也已从 HE1 -> HE2 更改。但是,由于 PATCH 操作仅在 Item 级别完成,客户端如何知道 Header etag 已更改?如果没有此信息,如果客户端现在尝试更新标头(通过单独的 PATCH 调用),这将失败,因为标头的 ETag 同时发生了变化。
关于如何做到这一点的任何想法?
【问题讨论】: