2015-03-29 5 views
2

Nous avons une API REST qui est utilisée par une application mobile. En tant que version distillée, supposons que l'API fournisse une liste de livres et de leurs contenus tels que le nom de l'auteur, l'éditeur, l'année et le contenu des pages.Meilleure façon de fournir «delta» des modifications dans l'enregistrement de base de données

L'application mobile doit mettre en cache les 10 derniers livres dans le stockage local afin qu'il dispose toujours de 10 livres hors connexion. Les livres peuvent être mis à jour sur le serveur et l'application doit être synchronisée avec les dernières modifications.

  • Un nouveau livre est ajouté
  • A livres est mis à jour
  • Un livre est supprimé
  • etc

Nous avons besoin d'une certaine manière, au niveau du serveur, de fournir uniquement les modifications ont été réalisés depuis la dernière synchronisation du mobile. Ainsi, au lieu de demander les 10 derniers livres, ils ne demandent que ce qui a changé depuis le dernier chargement.

Ceci est quelque chose qui a été implémenté dans des systèmes de gestion de versions comme Git mais nous cherchons un moyen très simple de le faire avec des enregistrements de base de données.

Qu'est-ce qu'un très très très simple moyen de mettre en œuvre par exemple delta?

+0

en comparant les horodatages? mais cela vous obligera à pousser une entrée db entière et pas seulement les changements dans cette entrée. –

Répondre

0

C'est simple. Vous avez juste besoin de stocker la date-heure UTC chaque livre a été créé/modifié dans votre base de données, et de même dans l'application. L'application doit également stocker la dernière date-heure à laquelle elle a demandé une mise à jour des informations sur le livre. Ensuite, lorsque votre application demande une liste de livres, elle peut fournir la date et l'heure UTC du dernier contrôle à l'API, et l'API peut répondre avec uniquement les livres qui ont été modifiés depuis, ajoutés, modifiés et supprimés. . Vous devez donc également transférer des livres supprimés - avec un drapeau pour indiquer qu'il a été supprimé. Probablement également transmettre le nombre de livres qui devraient être dans la liste afin que votre application puisse vérifier que le nombre est correct.