Client-Server-Synchronisation über REST
Diese Frage handelt von dem, was meiner Meinung nach ein sehr verbreitetes Problem in der Android / iOS-Entwicklung ist, aber ich habe noch keine "Standard" -Lösung gefunden.
Nehmen wir an, wir haben eine ziemlich normale REST-API. Die Serverdatenbank enthält unter anderem die Tabellencountries
undtowns
mit einer 1: N Beziehung.
Der Client (mobile App) möchte einen lokalen Snapshot dieser beiden Tabellen verwalten. Wenn es offline ist, können Abfragen ausgeführt werden, die normalerweise über REST ausgeführt werden, z. B .: "Liste der österreichischen Städte mit einer Bevölkerung von> = 100 abrufen"?
Wie soll man das angehen?
Erstes Problem: Konsistenz. Der Client sollte eine Momentaufnahme der beiden Tabellen haben. Wenn der Client Aktualisierungen der herunterlädttowns
In manchen Städten wird möglicherweise auf ein Land verwiesen, das sich nicht in der lokalen Kopie von befindetcountries
Tabelle.
Zweites Problem: Der Client sollte nur die neuen / gelöschten / geänderten Zeilen herunterladen. Lassen Sie den REST fallen und verwenden Sie einen benutzerdefinierten RPC-Aufruf wieget_updates_since(...)
?
Drittes Problem: Wie sollten lokale Änderungen an der Client-Kopie der Datenbank (möglicherweise offline) mit dem Server synchronisiert werden? Benutzerdefinierte RPC-Aufrufe?