2013-05-19 28 views
1

在我的應用程序,我展示對象,基本上有三種狀態:未決INPROGRESS完成。我想顯示所有種族是目前未決INPROGRESS,但不是說是的那些完成。要做到這一點,我想創建一個RESTful API來從我的服務器獲取這些資源,但我不確定什麼是最好的(即最RESTful)方法。休息理念,爲更新和獲取記錄

的問題是,當有人打開或刷新應用程序,我需要兩兩件事:

  1. 上的所有當前顯示的客戶端更新自己的狀態執行GET。
  2. 得到了各界新的未決自上次更新客戶端已創建INPROGRESS賽

我已經拿出了幾個不同的解決方案,雖然我不知道是哪個,如果有的話,將是最好的:

  1. 簡單地刪除舊記錄在客戶端上,並始終讓所有的新記錄
  2. 執行2分隔符ËGET操作,這將更新所有舊記錄的第一,第二,我得到了各界新未決/INPROGRESS賽
  3. 執行一個GET操作,我指定的最後一個客戶端的創建日期記錄並獲取更新的所有記錄。

對我來說,這似乎是一個很常見的情況,但我一直無法找到這種類型的問題的具體答案。我想看看SO認爲:)

在此先感謝您的幫助!

回答

0

只需刪除客戶機上的舊賽記錄,並始終讓所有的新記錄

這可能是最簡單的解決方案。但是,如果您需要對客戶端進行非常流暢的更新(對於遊戲,數據可視化等),則不應這樣做。

執行2個單獨的GET操作(...)/執行單個GET操作,指定最後一個客戶端記錄的創建日期,並獲取所有更新的記錄。

我肯定會用一個單一的操作。比更新時間戳(時間戳操作成本高,並且可能同時發生多個操作)更好,我會使用序列號。 This is the way CouchDB handles "changes"。此外,正如您將在文檔中看到的,此解決方案可以升級爲異步通知(如果需要的話)。