我几乎没有在我的架构中检查REST和SOAP的架构作为SOA。比较两者时,我听说REST的一个缺点是不支持“交易” - 他们在谈论什么?因为从我可以看出,它确实只支持GET,POST,DELETE等底层HTTP协议的CRUD操作。
有人可以详细说明吗?如果我选择REST,它是否可以支持我的CRUD操作的交易密集型工作场所,还是我更适合使用SOAP路由?
答案 0 :(得分:10)
如果您需要跨多个调用进行事务处理,最好不要选择任何一个并在wcf中选择远程处理或二进制序列化等操作。 REST和SOAP都是无状态的。连接打开,执行操作然后再次关闭。话虽这么说,wcf确实通过SOAP支持事务支持,所以如果你必须在两者之间选择那个就是那个。
答案 1 :(得分:8)
您所指的交易类型是分布式交易。这允许客户端在服务器(甚至几个不同的服务器)上执行多个调用,并让它们全部提交或全部回滚。
WCF通过WS-AtomicTransaction(WS-AT)协议支持分布式事务。该协议适用于SOAP。因此,要使用WCF事务,必须使用SOAP - 而不是REST。
虽然您不会使用REST进行跨呼叫分布式事务,但仍可以在特定方法中使用数据库事务。例如,您可以实现一个POST操作,该操作提交订单并在该方法中的一个事务中更新Order和OrderLine数据库表。因此,仅仅因为您的应用程序是事务密集型的,并不一定意味着REST的问题的分布式类交易在您的环境中将变得非常重要。
答案 2 :(得分:5)
从昨天开始quote Roy Fielding
我认为“休息交易”是一个 矛盾。
答案 3 :(得分:1)
看看RETRO。