更新和获取记录的休息理念

时间:2013-05-19 18:00:22

标签: api rest client-server

在我的应用中,我正在显示基本上有三种状态的种族对象:待定 inProgress 已完成。我想显示当前待处理 inProgress 的所有种族,但不显示已完成种族。为此,我想创建一个RESTful API来从我的服务器获取这些资源,但我不确定最好的(即最RESTful)方法是什么。

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

  1. 对当前在客户端中显示的所有种族执行GET,以更新其状态。
  2. 获取自客户上次更新以来创建的所有新待处理 inProgress Races
  3. 我想出了一些不同的解决方案,但我不知道哪种解决方案最好:

    1. 只需删除客户端上的旧种族记录,并始终获取所有新记录
    2. 执行2个单独的GET操作,第一个用于更新所有旧记录,第二个用于获取所有新待处理 / inProgress Races
    3. 执行单个GET操作,我指定上一个客户记录的已创建日期,并获取所有较新的记录。
    4. 对我而言,这似乎是一种非常常见的情况,但我无法找到这类问题的具体答案。我想看看SO的想法:)

      提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  

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

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

  

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

我肯定会通过一次操作来完成它。比更新时间戳更好(时间戳操作成本高,并且几个操作可能同时发生),我会使用序列号。 This is the way CouchDB handles "changes"。 此外,正如您将在文档中看到的那样,此解决方案可以升级为异步通知(如果您需要)。