DropboxのDatastore APIをさっそく使ってみた
Dropboxが公開したDatastore API。簡単に説明すると、Dropbox内にファイルではなく、構造化したデータを保存できるというもの。
先日使ったParseのようなものと考えて差し支えないが、今のところ認証した自分のデータしか扱えないようだ。全員が見れるようなデータを保持する事ができないのが、これもそのうち使えるようになるだろう。
詳細は以下のリンクを参照ください。
- The Datastore API: a new way to store and sync app data | Dropbox Developer Blog(公式ブログ・英語)
- Dropbox が Datastore APIで構造化したデータを保存できるようになった
- オフラインWebアプリを実現するDropboxの新API「Datastore API」。Dropboxは実質的にBaaS市場へ参入した - Publickey
SDKのダウンロード
以下からダウンロードしてください。SDKって書いてますが、ToDoリストのサンプルになっています。
JavaScript Datastore API - Dropbox
Webサーバの適当なところに設置しておきます。
Dropboxでの認証後、リダイレクトしてくるので、localhostでも良いので。
アプリケーションの登録
App Consoleからアプリケーションを登録します。
これを行わないとキーが貰えないです。
右上の「Create App」をクリックし、Datastore APIの書いてある「Dropbox API app」を選択します。
続いて扱うデータの種類として「Datastres only」、アプリ名として重複しない名前を入れます。
作成されると、他の詳細画面が表示されます。
「App key」は後で使います。
今は「OAuth redirect URIs」を入力します。先ほど設置したlocalhostのURLを入力します。私の場合は、DocumentRoot配下に置いただけなので、
「http://localhost/dropbox-js-datastore-sdk-0.1.0-b2/examples/tasklist/」
です。
ファイルの修正
ダウンロードしたファイルの /dropbox-js-datastore-sdk-0.1.0-b2/examples/tasklist/tutorial.js を書き換えます。
// Insert your Dropbox app key here: var DROPBOX_APP_KEY = 'ここにさっきのApp keyを入れる';
認証
ブラウザで先ほどのURLを開くと、以下の様な画面になります。
DropboxのID/PWでログインし、許可を与えると、リダイレクトされて戻ってきます。
完了チェックの入れられる普通のToDoリストです。
データの確認
入力したデータは、App Consoleから確認できます。アプリケーションの詳細画面の「Browse datastores」をクリックすると、以下の様な画面になります。
日本語も化けずに入ってますね。
コードの確認
CRUDとして動いている状態ですので、要所を確認してみます。
var taskTable; // データストアからテーブルを取得 taskTable = datastore.getTable('tasks'); // クエリを投げてレコードを取得 var records = taskTable.query(); // レコードのキーの値を取得 record.get('completed') // レコードの追加 taskTable.insert({ taskname: text, created: new Date(), completed: false }); // キーの値を更新 taskTable.get(id).set('completed', completed); // レコードの削除 taskTable.get(id).deleteRecord();
非常にシンプルですね。
オフラインでの変更に対するコンフリクトへの考慮もあるので、オフライン時にはLocalStorageを使って、オンラインになったら同期といった使い方もできそうです。KVS的な作りになっているので、相性も良さそうです。
Dropbox内でファイルを公開・共有して、DatastoreやChooser - Developers - Dropboxを使えば、サーバ不要ですね。(最初に書きましたが、共有データをどうするか、って問題はありますが)