BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Dropbox peut maintenant contenir des données structurées avec son API Datastore

Dropbox peut maintenant contenir des données structurées avec son API Datastore

Dropbox a publié son API Datastore qui propose un accès à un stockage clé-valeur qui permet la synchronisation entre les différents appareils d’un utilisateur utilisant le même compte Dropbox. Elle gère également la résolution automatique de conflit.

L’API Datastore permet aux applications de stocker des données structurées dans le compte Dropbox de l’utilisateur. Elle propose également une gestion native de la synchronisation des changements entre les différents appareils et une gestion automatique de la résolution des conflits. L’API permet une utilisation offline et propagera les mises à jour quand la connexion Internet est de retour.

Un Datastore est organisé en tables qui contiennent des enregistrements consistant en un ID et une liste de champs. Chaque champ a un nom et une valeur. La liste des types de données possibles est la suivante :

  • String
  • Boolean
  • Integer, 64 bits, signé
  • Floating point, IEEE double
  • Date, timestamp POSIX en millisecondes
  • Bytes, Les données binaires telles que les images ou les données compressées. Comme chaque enregistrement a une liste de 100 ko, stocker de plus grandes quantités de données peut être fait en utilisant les fichiers Dropbox à travers l’API Files. Le champ peut alors contenir la référence vers le fichier.
  • List, Une liste d’un des types précédents. Elle ne peut pas elle-même contenir une autre liste. Elle supporte les opérations simples tel que : put, move, insert et delete.

Le datastore n’a pas de schéma ce qui permet les enregistrements avec des nombres de champs différents, mais il est recommandé que “tous les enregistrements aient globalement les mêmes champs afin de pouvoir faire des recherches sur ces champs”. Il est possible de créer plusieurs tables et plusieurs datastores pour s’adapter aux besoins des développeurs.

Une application est limitée à 5 Mo pour l’ensemble de ses datastores sans utiliser le quota de stockage de l’utilisateur. Au-dessus de cette limite, l’application commence à utiliser le quota de données Dropbox de l’utilisateur et l’écriture ne fonctionnera plus si la limite est atteinte.

Le code suivant est un exemple de code pour Android montrant comment ouvrir le datastore par défaut, créer une nouvelle table, insérer un nouvel enregistrement avec deux champs, “taskname” et “completed”, et les synchroniser dans les données en mémoire avec Dropbox.

DbxDatastore store = DbxDatastore.openDefault(mAccount);
DbxTable tasksTbl = store.getTable("tasks");
DbxRecord firstTask = tasksTbl.insert().set("taskname", "Buy milk").set("completed", false);
store.sync();

Les écouteurs enregistrés seront informés lors de l’opération de synchronisation afin qu’ils puissent y réagir. C’est comme cela que les opérations dans le datastore sont propagées à travers les différents appareils.

Dropbox propose des SDKs pour Android, iOS et JavaScript. Comme l’API est en beta, Dropbox s’attends à ce que “l’API soit stable dans quelques semaines”.

Dropbox a sorti un Sync Component pour iOS avec Xamarin qui permet d’accéder au datastore en C#. Une vidéo de démonstration réalisé par Xamarin montre à quelle vitesse les changements sont propagées entre les appareils.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT