Yahoo!検索とLiveガジェットのマッシュアップ:Windows Liveが魅せる次世代マッシュアップ(2/5 ページ)
AJAXを追い風に、さまざまなサービスをWeb上で融合させるマッシュアップがはやっている。MSのLiveガジェットは、さまざまなWeb APIとつなぐことができる柔軟さを持っている。
受信完了後のネットワークリクエストオブジェクトは、コンストラクタの第2引数として得られるオブジェクトのxmlSourcesコレクションを使って取得できる。
前ページの例では、「mydata」という名前で定義しているため、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
として取得できる。
このオブジェクトは、ネットワークリクエストオブジェクトそのものであり、responseTextプロパティでその文字列を得たり、responseXMLプロパティでDOMオブジェクトを取得したりできる。
そのため、マニフェストに定義するという方法を使えば、外部サーバからデータを読み込む処理がinitializeメソッド内だけで完結し、コールバック関数を用意する必要がなくなる(リスト6)。
リスト6:リスト5に定義した外部XMLを読み取ってLiveガジェット内に表示する
Webサービスを呼び出す
ネットワークリクエストオブジェクトでは、AJAXと同様に、Webサービスを呼び出すことも可能だ。特にREST形式の場合には、その呼び出しは簡単だ。
GETメソッドの場合には、URLの後ろにパラメータを付ければよい。
例えば、次のようにすればYahoo! JAPANの「検索Webサービス」を使い、「ウィンドウズ」という語句を検索した上でその結果をガジェット内部へと表示できるのだ。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ここでは、Yahoo! Webサービスの解説は割愛する。Yahoo! Webサービスについては、「Yahoo!デベロッパーネットワーク」を参照してほしい(関連リンク)。
結果をパースするOnXmlDataReceived関数は、例えば次のように実装する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
実行結果は、画面5のようになる。
Copyright © ITmedia, Inc. All Rights Reserved.