【发布时间】:2022-01-17 16:10:27
【问题描述】:
我有一个用于添加注释的 API 端点,但是当从 GUI 使用此 API 时,可以保证在发出此请求之前已经发生了一些事情...例如,假设我正在添加注释的标签两者都在注释本身中,并且在特定于标签的单独集合中。所以当用户在 GUI 中添加/删除/更改标签的某些属性时,会一一发出请求,标签集合将独立受到影响,但是,如果用户发出 API 请求,他们可以(不经意间)绕过一个步骤非常容易,例如,在没有将其添加到标签集合之前的情况下,将标签添加到笔记中......。在编写服务时如何处理这样的场景?由于某些原因,此数据不能只保存在两个地方之一,两者都必须存在。
简而言之,资源有一些“依赖”资源,但是当在 GUI 中调整时,这些资源会与它保持同步,但是,提出这样的请求:
POST /api/resources HTTP/1.1
// body containing dependent resources...
可以让它们不同步。
我不确定 Web 服务设计的术语,因此标题可能难以理解,但这个问题确实是关于“当数据保存在数据库中的两个位置时,在更改其中一个位置时保持数据的完整性他们使用一个 API(另一个必须保持有意义的正确并与最新状态同步)。
【问题讨论】: