REST最佳实践和连接问题

时间:2014-05-06 09:53:41

标签: android web-services rest architecture

我有一些有趣的问题,并希望得到一些具有相似经验的人的意见。 我有一个Android应用程序进行REST调用(例如接受打开的订单)。 App发出请求并遇到连接问题,同时服务器获取请求,更改订单状态并发回响应(例如HTTP 200)。但是,应用程序缺少其网络连接,不会收到响应并获得超时异常。如果我再次尝试接受该命令,我会得到它已被采取的回应(在这种情况下由我)。

问题是 - 对于这种情况应该采取什么样的最佳方法。 目前,如果我遇到超时异常,则要求运行一个循环(在某些情况下,它是一个包含另一个Web调用的循环,用于检查此顺序是否未出现在我的“CurrentOrders”中)。我不喜欢这种设计,并想知道什么会更好。如果同一客户尝试接受两次或更多次的同一订单,那么网络电话可能会返回200(成功)?或者你们有些人会如何应对这种情况?

1 个答案:

答案 0 :(得分:1)

我不太清楚你的语义是什么?接受"动作。

它实际上做了什么? 一方面它似乎更新了订单状态。它应该是idempotent,因为进一步的更新不应该改变任何东西。

另一方面,你有某种外部状态(采取命令)。这不能通过REST完成,您必须使用某种唯一ID来解决冲突。有关详细信息,请查看此question