REST WCF服务中的事务
我们正在使用REST WCF服务。 我们希望此REST服务上的保存操作处于事务中。REST WCF服务中的事务,wcf,rest,transactions,wcf-rest,Wcf,Rest,Transactions,Wcf Rest,我们正在使用REST WCF服务。 我们希望此REST服务上的保存操作处于事务中。 有没有一种方法可以通过连接将事务对象传递到REST WCF服务?WCF中的事务支持是通过众多WS-*标准中的一种来处理的,这些标准只适用于SOAP—我非常怀疑webHttpBinding本身是否支持事务 不过,您可能需要检查WCF REST之上的层 请参阅ADO.NET DataServices团队提供的有关此问题的详细信息 马克(Marc)这里引用了罗伊·菲尔丁(Roy Fielding)的一句话,他是“休息”
有没有一种方法可以通过连接将事务对象传递到REST WCF服务?WCF中的事务支持是通过众多WS-*标准中的一种来处理的,这些标准只适用于SOAP—我非常怀疑webHttpBinding本身是否支持事务 不过,您可能需要检查WCF REST之上的层 请参阅ADO.NET DataServices团队提供的有关此问题的详细信息
马克(Marc)这里引用了罗伊·菲尔丁(Roy Fielding)的一句话,他是“休息”一词的发明者 如果你发现自己需要一个 分布式事务协议,然后 你怎么可能说你的 架构是基于REST的吗?我 根本看不出你能从中得到什么 使用RESTful的一种情况 客户端和服务器上的应用程序状态 确定所有状态的超媒体 过渡)到的下一种情况 需要分布式协议 事务语义,其中 客户端必须告诉服务器如何 管理自己的资源 现在我考虑“休息交易”。 这是一个矛盾修饰法
这是2009年6月9日REST讨论列表中的一篇文章。以下是关于该主题的最新讨论: 基本上它是这样说的:单个请求不支持事务,支持它们也没有意义,因为单个POST/PUT/DELETE请求只涉及一个实体和CUD操作。但可以通过以下方式在服务器端实现事务:
- 使用批处理请求(一个完整的POST/PUT/DELETE请求包通过一个步骤从客户端发送到服务器)
- 并利用处理管道(在处理事件中开始事务,并在已处理事件中提交/回滚事务)
/gift-voucher/{gift-voucher-id}/collection
请求此URL将创建并保留礼品券的预订。该响应包含预订的URL:
/gift-voucher/{gift-voucher-id}/collection/reservation/${reservation-id}
此URL可以过帐或删除,以便分别执行或取消礼品券收集
请注意,此方法仅适用于存在回滚交易的功能用例(即失败的信用卡支付)的应用程序服务。尝试将此应用于较低级别的服务(如实体服务)可能会涉及大量工作,并且执行效果非常糟糕。在这种情况下,您可能想知道RESTful服务是否真的是最佳选择。好的,那么Fielding应该解释(很明显,这本身就是一项任务)我应该如何告诉服务器:创建这两个资源,但同时,不要先创建这个资源,然后是另一个resource.POST/MyResourcePairs我会给你一个更真实的例子,但是你会发现在大多数需要发生事务的情况下,用户使用一个名词来表示该事件。因此,从最终用户的角度来看,您所描述的内容很少存在,换句话说,它将违反无状态约束。