java - 如何通过api进行两次独立的修改

标签 java rest

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

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

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

我认为唯一的解决方案是进行一个新的调用,以恢复之前的调用更改,但这似乎不是一个很好的解决方案。

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

最佳答案

这是一个困难的情况。

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

我同意最好的做法是不要向用户显示部分更新的数据,因此您有一些选择,具体取决于您遇到的失败类型。

如果由于类似网络的错误而失败,您可以尝试对第二个端点进行一次重试。

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

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

关于java - 如何通过api进行两次独立的修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56320800/

相关文章:

java - 为什么我对 winapi GetWindowPlacement 的调用失败(使用 JNA)?

java - eclipse 'Java Category' 窗口中引用的 'outline' 是什么

java - RxJava;如何同步发射 observables

http - 当资源可用但由于权限而无法访问时更正 HTTP 状态代码

java - 使用 Spring JPA 未将 Rest api 响应数据保存在数据库中

java - 从外部 jar 加载类

java - 如何在Java中将bigDecimal数据保存到文件中

java - 学习如何在 Java 中创建 RESTful API 的最佳资源是什么?

java - 使用 jersey 2.0 时出现 NoSuchMethodError

rest - 如何设计一个查询,从中检索要以 RESTful 方式应用过滤器的资源的最后数据?