I am working on a small web app that stores user data locally using indexedDB which can be imported/exported by making use of JSON files. Since I plan on adding updates to the site, I want to know what best practices I should follow to make sure my app can allow importing of user data from older versions. It could be related to how I should define the properties of my user data object to make it future proof, or any library or tool I could implement that would make this migration process easier.
Do keep these points in mind:
- I am using NextJS to build this application and Dexie to manage indexedDB
- Without going into details, the user data file makes use of heavily nested objects and arrays and most likely won’t fit in a cookie or even in the local storage API
- This web app acts as a proof of concept which must only make use of the aforementioned core technologies, regardless of whether more efficient alternatives exist or not.
I can’t speak to your framework specifically, but:
I’m assuming this is a REST API. I would suggest versioning the API, like
/api/v1
for example.It’s funny, I’m currently dealing with this at work. The old API was just
/api
but on the backend we’ve mapped it toAPI::V1
(Ruby). It gets a little pesky backporting things to the older API so it’s good to start with a solid foundation as much as possible.Something else I might suggest: use a good serializer and deserializer. You don’t want to muck up your models with crazy translations for everything: having a middle layer to perform that has been so, so beneficial to us.