2015-03-31 70 views
0

我在Web API中对控制器有两个不同的调用。假设第一个路线为http://localhost/1,第二个路线为在ASP.NET Web API中使用事务

我的目标是做类似交易的事情。在第一次调用中,我想将数据发送到服务器。所以这就是我的第一个问题出现的地方:如何在服务器上短时间保存数据,而不是将其保存到数据库中?最佳做法是什么?

在第二次通话中我发送验证码。如果代码是好的,那么我会对之前调用的客户端发送的数据做些什么。

这听起来像是一个交易给我。如果代码正常,则提交,如果代码验证失败,则回滚事务,但我不确定是否有可能在这种情况下使用事务,当您有两种不同的POST方法时。

有人可以帮我考虑一下这点吗?

+0

看来你必须将验证码与数据结合起来。通常webapi是一个无状态的实现,所以在调用之间没有共享。 – Peter 2015-03-31 07:03:07

+1

@peer在内存中保存某种事务引用是否是好主意,将其返回给客户端,然后在第二次调用中请求客户端提供事务引用和验证代码?这是在我脑海中滑落... – 2015-03-31 07:09:32

回答

2

不要在服务器上暂存任何东西。这是一个不好的做法。

WebApi是无状态的。所以,最好保存服务器中的每个细节。

  1. 在第一个POST调用,返回一个独特的交易参考号(使用SQL服务器来保存这些信息)

    例如POST到http://localhost/requestVerificationNumber/它返回一个GUID

  2. 在第二POST调用,交叉通过与之前存储的唯一的交易号匹配它检查验证代码。第二次POST调用是发送该参考号码的责任。

    E.g. POST到http://localhost/verifyCode/以及GUID之前发送。 这种方法的优点是所有的事务都存储在Sql Server中,并在以后进行操作。

+1

@nowhewhomustnotber感谢您的回答,它给了我更好的想法如何实现这一点。 :) – 2015-03-31 07:48:40

+0

@ nemo_87:酷。很高兴帮助:) – 2015-03-31 08:53:28