使用 REST api 实现原子性

Posted

技术标签:

【中文标题】使用 REST api 实现原子性【英文标题】:Achieving atomicity with REST api 【发布时间】:2020-09-05 23:12:34 【问题描述】:

我目前正在设计应用程序的前端和后端。然而,我怀疑如何在不违反 REST 原则的情况下最好地实现原子行为。假设我有一个主要更新一个资源的视图(即数据库中的一个表,例如 gameConfigurations),但根据一些用户选择,必须根据业务需求更新更多资源。从视觉上看,用户有一个保存按钮,因此它被认为是对他的一种修改。所以我的问题是:

    我是否应该将所有数据合并到一个 POST 请求负载中,并在 updateGameConfigurations 服务中处理对其他服务的条件调用,并更新受这些配置影响的其他资源? 或者我应该把这个业务逻辑移到前端服务层,在那里进行必要的api调用来修改不同的资源?在这种情况下,很难实现原子性,因为有 n 个不同的 api 调用。

非常感谢所有反馈。

【问题讨论】:

【参考方案1】:

当您需要同时发出多个请求时,您可以使用API composition来解决问题。

【讨论】:

以上是关于使用 REST api 实现原子性的主要内容,如果未能解决你的问题,请参考以下文章

什么是程序的原子性

程序的原子性,python实现原子性,上锁解锁threading.Lock()

如何实现事务原子性?PolarDB原子性深度剖析

如何实现事务原子性?PolarDB原子性深度剖析

Redis如何保证原子性

synchronized能够保证原子性吗