当用户更新我的数据库中的项目时,该更新的记录需要保存在该项目的历史记录中。基本上,我的数据库中有一个历史记录表,用于跟踪特定项目的生命周期。
我正在通过服务中的PUT请求对此项进行更改,然后分别调用不同的POST端点以将该操作添加到历史表中。这让我感到担心,因为如果第一个PUT请求成功,则历史记录POST可能会由于互联网连接不正常等原因而失败。...由于准确的历史记录对应用程序至关重要,因此这不是理想的选择。
如果历史记录POST失败,我基本上需要一种回滚初始PUT的方法。
如果有一个角度来实现这一目标,我会很乐意。如果不是,那么将POST历史记录写入PUT端点SQL查询是否更明智?
这是我现在拥有的基本版本:
this._itemService
.updateItem(updateObject)
.pipe(flatMap(result1 => this._historyService.postHistory(historyObject)))
.pipe(take(1))
.subscribe(result2 => {
// Notify user that the item was updated.
});