我想要設計如何通過REST API來處理Android應用程序和遠程服務器之間的數據同步。通過REST API處理Android服務和服務器之間的數據同步
現在它還處於早期階段,但我有我的休息服務器基本上運行(無論如何足夠用於測試目的)。
我有3個表來同步(鏈接如下)。
SHOW> -----季> ----- EPISODE
服務器和設備有這些表的一個類似的版本,我需要現在,最終他們設備同步到服務器(2方法)。同步將通過Android服務在後臺對REST API進行異步調用(插入/更新和刪除)而發生。
現在我的主要問題是提出一個邏輯,以確保雙方將得到相應的更新。
從設備到服務器的插入/更新將通過POST請求完成,所以我想所有3個表上都有一個狀態標誌,通過ON INSERT/ON UPDATE TRIGGERS(SQlite)填充,允許同步服務工作需要到服務器上的行。 這是正確的做法嗎?
它看起來像
CREATE TRIGGER sync_update_show AFTER UPDATE ON show
BEGIN
UPDATE show SET sync_flag = 'TO_SYNC' WHERE _id = new._id
END
現在進行刪除,該服務是獨立於主應用程序,我雖然使用BEFORE DELETE SQlite的觸發器來填充「TODELETE」表,該服務可以瀏覽和觸發刪除對服務器的API調用。 這是正確的做法嗎?
它看起來像
CREATE TRIGGER sync_delete_show BEFORE DELETE ON show
BEGIN
INSERT INTO todelete_show
SELECT * FROM show WHERE _id = old._id
END
現在,當它涉及到服務器應用程序同步,我只想得到所有記錄(API調用)和處理插入/更新/刪除設備上(瀏覽通過返回的記錄)。但是可能有更高效的方法來優化帶寬(返回的JSON可能很大)。
我歡迎任何意見,因爲我不想開始處理服務實現並意識到我弄錯了所有錯誤!
謝謝你的信息。我不認爲我現在需要ContentProvider,因爲我不打算與其他應用程序共享內容而不是我的其餘服務器。我一定會考慮它的未來! – Madoc 2012-03-19 09:08:14