【问题标题】:How to make two independent changes through api如何通过api进行两个独立的改变
【发布时间】:2019-05-27 16:20:21
【问题描述】:

我有一种情况,我必须在 facebook 上更新视频详细信息,该更新需要两个不同的调用,现在我的问题是

如果任何一个调用失败,我该怎么办?

我不想向用户显示部分更新的数据,我也不想重试,因为如果它已经失败,可能会再次失败。

我认为唯一的解决方案是拨打一个新电话,以恢复之前的通话更改,但这似乎不是一个好的解决方案。

有人可以提出更好的方法吗?

【问题讨论】:

  • 这是一个困难的情况。请记住,您的回滚(恢复第一次更改)也可能失败 - 有时是由于您无法控制的事情(可能是互联网连接中断了一秒钟,或者服务器出现故障)。

标签: java rest


【解决方案1】:

这是一个困难的情况。

在进行任何 API 调用之前,您应该尽一切可能检查调用可能提前失败的可能原因 - 例如缺少身份验证或授权。

我同意不向用户显示部分更新的数据是最佳做法,因此您有几个选择,具体取决于您遇到的故障类型。

如果它因类似网络的错误而失败,您可以尝试一次重试到第二个端点。

否则我建议回滚。如果您的回滚调用失败,您应该通知您的用户某些数据已更改并且无法回滚。如果错误再次是网络错误,您可以创建一个队列作业以便稍后运行以回滚更改。

无论如何,您都应该通知您的用户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-22
    • 2021-01-06
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 2021-12-23
    相关资源
    最近更新 更多