betagouv / eac-api

API de la plateforme EAC. Distribue des données sur les Acteurs Culturels et leurs actions.
https://api.education-artistique-culturelle.fr/
MIT License
2 stars 1 forks source link

Réflexion sur les versions d'un document #9

Open rap2hpoutre opened 6 years ago

rap2hpoutre commented 6 years ago

Suite à une discussion de l'équipe dev :

rap2hpoutre commented 6 years ago

JSONPatch est parfois cité, c'est une spec IETF de 2013 (https://tools.ietf.org/html/rfc6902). Il y a quelques lib pour gérer ça mais beaucoup semblent abandonnées (ou alors c'est qu'elles étaient tellement bien qu'elles n'ont jamais été mises à jour). La moins abandonnée à l'air d'être celle là : https://www.npmjs.com/package/fast-json-patch (avec ses ~75k dl/week), elle n'a pas eu de sortie depuis 8 mois, mais a eu son dernier commit en avril.

Avantages potentiels du JSON Patch :

Mais c'est peut-être overkill. Une autre solution serait simplement de stocker les objets entiers dans une propriété history du document et d'utiliser des outils de comparaison (comme https://github.com/benjamine/jsondiffpatch) seulement quand on en a besoin

vinyll commented 6 years ago

Je serais partant pour stocker l'objet entier pour l'instant. On partirait alors du principe que la version proposée est fiable, et si c'est pas le cas on revient à la version précédente (en effaceant carrément la dernière version ?). Sachant que la structure des acteurs risque de changer, ca sera peut être plus simple à migrer aussi (?)