5.2. WikipediaStore
WikipediaStoreはWikipediaのAPIを利用してデータストアを作成します。以下ではWikipediaStoreを利用して、キーワードに該当するページのコンテンツを取得し、それを表示するサンプルを作成します。
WikipediaStoreを利用するには、dojo.require()でdojox.data.WikipediaStoreを読み込んでインスタンスを作成します。
dojo.require("dojox.data.WikipediaStore"); var wikipediaStore = new dojox.data.WikipediaStore();
WikipediaのAPIにアクセスするにはfetch()メソッドを利用します。
var request = { query: { title: "Dojo Toolkit" }, onItem: function(item, request){ var title = wikipediaStore.getValue(item, "title"); var text = wikipediaStore.getValue(item, "text")["*"]; ... } }; wikipediaStore.fetch(request);
Wikipediaのページを検索するには、fetch()メソッドの引数requestのquery.titleにキーワードをセットします。例えば、"Dojo Toolkit"を検索するにはquery.titleに"Dojo Toolkit"をセットします。onItem()では、検索結果に対する処理を行います。ここでは、itemからtitle属性とtext属性の値を取得しています。query.titleに"Dojo Toolkit"と指定した場合の、title属性とtext属性の値をHTMLで表示すると以下のようになります。
サンプルでは、英語サイトのWikipediaの情報が表示されます。dojox/rpc/SMDLibrary/wikipedia.SMDを編集して、targetの値を"http://ja.wikipedia.org/w/api.php"に変更すると、日本語のWikipediaの情報を表示することができます。また、表示されたWikipediaのコンテンツ中のリンクはWikipediaのサイト用に最適化されているため、サンプル上では正しく動作しないことがあります。
5.3. GoogleSearchStore
GoogleSearchStoreを利用すると、キーワードに対するGoogleでの検索結果を得ることができます。以下では、キーワードを送信しそれに対する検索結果を表示するサンプルを作成します。
まず、GoogleSearchStoreを利用するにはdojo.require()でdojox.data.GoogleSearchStoreを読み込み、インスタンスを生成します。
dojo.require("dojox.data.GoogleSearchStore"); var googleStore = new dojox.data.GoogleSearchStore();
検索結果を得るにはfetch()メソッドを使います。fetch()メソッドの引数には、queryプロパティとコールバック関数onComplete()をセットします。query.titleには検索キーワードをセットします。
var requestParam = { query: { text: keyword // 検索キーワード }, onComplete: function(items, request) { var searchResultPane = dojo.byId("searchResultPane"); searchResultPane.innerHTML = ""; for(var i=0; i<items.length; i++) { var item = items[i]; var title = googleStore.getValue(item, "title"); var summary = googleStore.getValue(item, "content"); var url = googleStore.getValue(item, "url"); ... } } }; googleStore.fetch(requestParam);
検索が成功すると、コールバック関数onComplete()が実行されます。サンプルでは、itemsに格納された各検索結果の"title"属性, "contenet"属性, "url"属性をgetValue()を使って取得します。titleとurlからリンクを作成し、それらをcontentと一緒にリスト形式で表示します。"Dojo グラフ"というキーワードで検索した時の実行結果は以下のようになります。
6. まとめ
この記事ではdojo.dataの概要、特にデータ操作の基本となるオブジェクトであるデータストアとそのインターフェースについて解説しました。また各インターフェースを実装した具体的なデータストアについて例を用いて実際の使い方を示しました。
dojo.dataのデータストアはDojoが用意するさまざまなウィジェット、またDojo Toolkitのユーザーが開発したカスタム・ウィジェットの中で使われており統一された操作がコンポーネントの保守性・再利用性を高めます。ぜひ積極的に使ってみてください。