2016-05-18 45 views
0

我很努力地找到解決方案,我認爲這是一個常見的要求,所以我希望有人可以幫助我尋找什麼搜索/區域探索。通過wordpress JSON api公開「所有變更」

背景

我建立一個iOS的移動應用程序。我使用realm.io在本地存儲數據。該應用預裝了Wordpress mySQL數據庫內容的快照(它使用自定義類型)。 WP數據庫的內容只能通過Wordpress安裝,移動應用程序無法寫入數據。

目的

所以,我希望能夠檢查從一個給定的日期改變(只要本地數據庫最後更新),併發送更改的記錄到移動應用程序(通過WP JSON API ?)。

我想我可以從「日期以來」獲取「帖子」,但我需要自給定日期以來的所有創建,更新和刪除操作的完整列表。

由於該應用程序是隻讀的,我認爲這種單向同步將非常簡單,但我找不到一個通用的解決方案。

任何想法指向正確的方向將是偉大的。很明顯,如果任何人有這樣的經驗,如果realm.io的東西那麼那將是驚人的:-)

回答

1

領域還不支持跨不同文件的任何形式的同步機制。儘管如此,我們有一個issue,但您很可能在尋找未來的解決方案。

更新: Realm推出了Realm Mobile Platform。這提供了同步功能,並將大大簡化此用例的解決方案。

您可以使用例如服務器端Node.js綁定從MySQL Wordpress安裝中提取新數據,並將它們推送到由Realm Object Server服務的全局域。這可以從移動應用只讀同步,移動應用會自動接收增量數據並向用戶提供更新的數據。


你雖然拿出了自己在此期間的任何機制,它需要從您的iOS應用程序領域的數據庫,你有讀寫訪問,這樣就可以用新的數據更新。

按照描述推送更改的記錄可能不起作用。

Apple的推送通知服務(APNS)是唯一一個在您的應用程序處於後臺或掛起狀態時起作用的後端通信通道,允許您發送非常小的有效負載。你會用它來表示你的iOS應用程序,在服務器端改變了一些東西,並且有新的數據要加載。然後,您將向基於JSON的API發起請求,等待響應,將返回的JSON映射到Realm對象並將它們存儲在數據庫中。
您可能需要閱讀iOS官方應用程序編程指南中背景執行章節的"Downloading Content in the Background"部分。

雖然從應用程序包中預先播種數據庫似乎是一個不錯的想法,因爲用戶在下載應用程序後不需要等待最初,這會使應用程序本身與數據一起放大,這可能會在未來完全不相關。

+0

感謝您的意見。我不清楚; ios應用程序**將寫入本地領域數據庫,但不會將任何更新發送回服務器上的「主」數據庫。 這種情況是這樣的:在應用程序中預先加載了1000條記錄,在服務器上「鏡像」master mySQL數據庫。一週後,應用程序打開並添加4條記錄,3條記錄已被更改,1條從主數據庫中刪除。我只想公開這8條記錄的詳細信息,而不是將所有999條記錄的新快照重新發送到應用程序。 – James

+0

我已經看到關於同步的問題/線索,然後花了一些時間查看對實時同步有很大支持的Firebase。但是,因爲我只需要單向同步,所以我認爲Realm的好處大於必須推出自己的同步邏輯的負面因素。我現在正在看Dreamfactory,看起來它可能會做我所需要的。我會發布更新,如果它:-)謝謝。 – James

+1

**更新**:我們推出了Realm移動平臺,它爲您的領域帶來同步。我相應地更新了答案,因爲我認爲這極大地簡化了這個用例。 – marius