我遇到了一种情况,我必须更新 Facebook 上的视频详细信息,该更新需要两个不同的调用,现在我的问题是
如果任何一个调用失败,我该怎么办?
我不想向用户显示部分更新的数据,我也不想重试,因为如果已经失败,可能会再次失败。
我认为唯一的解决方案是进行一个新的调用,以恢复之前的调用更改,但这似乎不是一个很好的解决方案。
有人可以提出更好的方法吗?
最佳答案
这是一个困难的情况。
在进行任何 API 调用之前,您应该尽一切努力提前检查调用失败的可能原因 - 例如缺少身份验证或授权。
我同意最好的做法是不要向用户显示部分更新的数据,因此您有一些选择,具体取决于您遇到的失败类型。
如果由于类似网络的错误而失败,您可以尝试对第二个端点进行一次重试。
否则我建议回滚。如果回滚调用失败,您应该通知用户某些数据已更改且无法回滚。如果错误再次是网络错误,您可以创建一个队列作业稍后运行以回滚更改。
无论如何,您都应该通知您的用户。
关于java - 如何通过api进行两次独立的修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56320800/