CodeZine(コードジン)

特集ページ一覧

Dojo道場 ~ 第2回「データAPI(dojo.data)を使いこなす」

「Dojo道場」~実用アプリ構築のためのベストプラクティス

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/12/21 14:00

 本シリーズでは、豊富な機能の中から厳選した、ビジネス・アプリケーションのためのベスト・プラクティスを中心に、Dojo Toolkitの活用方法をご紹介します。連載の第2回である今回は、dojo.dataの基本的な使い方と実用例について解説します。

目次

1. はじめに - dojo.dataとは

 Dojoが備えるデータAPIであるdojo.dataはデータの入出力を抽象化し、統一された操作を提供する一連のAPIです。これはSQLコマンドにたとえることができます。SQLコマンドをひとたび覚えれば、実際に背後で動作しているデータベース(DBMS) が何であるか(DB2やOracle, MySQLやPostgreSQLなど)を気にすることなく、基本的には同じ操作でデータをやり取りできますね。同様にdojo.dataのAPIを使えば、実際のデータをどこに・どのように格納しているかは気にせずに、開発者はデータのやり取りをできるようになります。

 dojo.dataではデータを入出力する機能を持つオブジェクトをデータストアと呼びます(または、省略してストアと呼ぶこともあります。ソース中に現れるコメント、変数名などには短くstoreと記述してあることが多いです)。dojo.dataには一番基本的なデータストアの実装として、ItemFileReadStoreおよびItemFileWriteStoreが付属しています。

 dojo.dataの実装は以下のようにdojo.dataパッケージ、およびdojox.dataパッケージのファイルから構成されています。

  • dojo/data/api/* --- データストアが実装すべきAPIの定義
  • dojo/data/util/* --- データストアを実装するときに使える便利なメソッド(simpleFetch)など
  • dojo/data/* --- 基本的なデータストアの実装 (ItemFileReadStore, ItemFileWriteStore)
  • dojox/data/* --- さまざまなデータソースを利用するデータストアの実装(XmlStore, CSVStore, FlickrStore, WikipediaStoreなど)。実験的なものも多く含みます

 サンプルコードの実行方法は第1回記事導入部の説明をご覧ください。

 連載の第2回である今回は、dojo.dataの基本的な使い方と実用例について解説します。

2. dojo.dataが定義するインターフェース

 dojo.data.apiではデータストアが実装すべきAPIを定義しています。次のインターフェースが定義されています。

  • dojo.data.api.Read --- データストアからデータを読み出すメソッドを定義しています。すべてのデータストアが実装します。
  • dojo.data.api.Write --- データストアに新規データを作成する、または既存のデータを削除・変更するなど、データを変更するメソッドを定義します。データストアがデータ更新機能を持つとき実装します。
  • dojo.data.api.Identity --- データストアに格納されたデータを識別するメソッドを定義します。ユニークIDによってデータを区別する必要があるとき実装します。
  • dojo.data.api.Notification --- データストアに格納されたデータの更新イベントを定義します。データが更新されたとき通知する機能が必要なとき実装します。
豆知識

 ItemFileReadStore.jsのソースを読んでみると、ItemFileReadStoreの実装ではdojo.declare()による継承はされておらず、dojo.data.api.Readへの参照がないことに気がつきます。つまりdojo.data.api下のファイルはインターフェースを定義しているだけで、継承して使う必要はありません。

 オブジェクトが定義と同じ名前・役割のメソッドを実装することでデータストアとしてふるまうことができます(これはダック・タイピングと呼ばれる手法です)。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:「Dojo道場」~実用アプリ構築のためのベストプラクティス

もっと読む

著者プロフィール

  • 仁田 圭祐(ニッタ ケイスケ)

    日本アイ・ビー・エム株式会社ソフトウェア開発研究所にて日々Webアプリケーションに関わる製品開発をしています。

  • 三浦 圭司(ミウラ ケイジ)

    日本アイ・ビー・エム株式会社ソフトウェア開発研究所に勤務。現在は、エンタープライズ向け製品のWebアプリケーションのユーザー・インターフェース開発に従事。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5