如何处理RESTful Web服务中的事务?

时间:2016-11-29 11:15:05

标签: java rest transactions rest-client

REST客户端通过流程中的服务器执行一系列步骤。客户端希望取消流程并撤消对该流程中数据所做的所有更改。

例如,我们有一个以下方法。它有三个不同的步骤。前两个是休息呼叫,其中第三个是数据插入。现在,如果restCall1(),restCall2()成功但第三步失败。前两个步骤中完成的所有操作都应该恢复原状。

method(){
    restCall1(); // Rest Call to the server, perform DB operations
    restCall2(); // Rest call to the server, perform file operations 
    insertData(); // Perform DB operations
} 

处理此交易问题的最佳做法是什么。一种方法是构建自定义事务框架和回滚步骤。是否有任何框架/工具可以提供解决方案来解决这个问题?

1 个答案:

答案 0 :(得分:-1)

REST客户端只能在REST调用中维护自己的状态,并且REST客户端状态与服务器管理的资源之间没有同步。您必须维护对违反无状态的Web服务的各种REST调用之间的同步如果您打算这样做,您必须在各种REST调用之间保持状态的同步并相应地进行协调。

更多here

但是有一些解决方法。Retro是一个以容易出错且可扩展的方式支持REST事务的模型。 另见this。希望它有所帮助。