1

在我的应用程序中,我显示的Race对象基本上具有三种状态:pendinginProgresscompleted。我想显示所有当前未决正在进行的比赛,但不显示已完成的比赛。为此,我想创建一个 RESTful API 来从我的服务器获取这些资源,但我不确定最好的(即最 RESTful)方法是什么。

问题是当有人打开或刷新应用程序时,我需要做两件事:

  1. 对客户端中当前显示的所有Race执行 GET以更新其状态。
  2. 获取自客户端上次更新以来已创建的所有新的挂起或进行中的竞赛

我提出了一些不同的解决方案,但我不知道哪个(如果有的话)最好:

  1. 只需删除客户端上的旧Race记录并始终获取所有新记录
  2. 执行 2 个单独的 GET 操作,第一个更新所有旧记录,第二个我获取所有新的挂起/正在进行的比赛
  3. 执行单个 GET 操作,我指定最后一个客户端记录的创建日期,并 GET 所有较新的记录。

对我来说,这似乎是一个很常见的场景,但我无法找到此类问题的具体答案。我想看看 SO 是怎么想的 :)

在此先感谢您的帮助!

4

1 回答 1

0

只需删除客户端上的旧 Race 记录并始终获取所有新记录

这可能是最简单的解决方案。但是,如果您需要在客户端上进行非常流畅的更新(用于游戏、数据可视化等),则不应该这样做。

执行 2 个单独的 GET 操作 (...) / 执行一个 GET 操作,我指定最后一个客户端记录的创建日期,并获取所有较新的记录。

我肯定会通过一次手术来做到这一点。比更新时间戳更好(时间戳操作成本高,并且可能同时发生多个操作),我会使用序列号。这就是 CouchDB 处理“更改”的方式。此外,正如您将在文档中看到的那样,该解决方案可以升级为异步通知(如果您需要)。

于 2013-05-20T08:31:26.127 回答