南山大学 数理情報学部 情報通信学科 2007 年度卒業論文要旨集

WebAPI を利用した Ajax サービスの開発について
2000MT052，松下 佳史
指導教員 青山 幹雄

1. はじめに

3. WebAPI について

近年，Ajax が注目されている．これは非同期通信を利用して，動的に Web ページを書き換える技術の総称で，従来の HTML を使用した静的な Web ページと違い，動的で，スピーディなＷｅｂページを作成でき，非同期通信である為，サーバからの返信を待たずに処理を行うことができる．また，Web 上で利用できる API，WebAPI が各所で公開されており，これらのような技術を組み合わせた MashUp と呼ばれる，複合サービスを提供するページも増えてきている．
そこで，本研究では Ajax と WebAPI を用いたサービスの提供について研究する．

3.1 WebAPI について
WebAPI とは Web 上で公開されている API である[2]．近年，yahoo や Google などの企業が WebAPIを公開しており，これらを利用することができる．これらを組み合わせることにより，新しいサービスを開発することができる．例えば，検索 API を利用する場合，検索ワードをリクエストとして送信すると，この API を提供している からリクエストに応えて検索結果がデータとして返信される．これらのデータのやりとりには XML を用いることが多い．こうして受け取ったデータを，自分の作成したサービスに利用する．
Google 社が提供する Ajax 用の WebAPI には，任意の Web ページに地図を設置できる Google MAP
API，Google の検索ボック スを設置でき る Google
AJAX Search API，他のドメインから RSS や Atomを取得できる Google Feed API がある．
他にも，Web 上で提供されている WebAPI の主なものには，商品データや宿泊旅行関連，Web ページからサムネイルを取得するものなど，さまざまな機能のＷｅｂＡＰＩが提供されている．

2. Ajax について
Ajax とは，「Asynchronous Javascript + XML」の 略 で あ る [1] ． Ajax に お け る 非 同 期 通 信 に は ，XMLHttpRequest が用いられる．
Ajax の利点として，サーバと非同期で通信を行える点がある．従来の通信では，サーバへリクエストを送信
すると，サーバからの返信があるまで待たなければならい．その間，待機しなければならず，余分な時間が生まれる．しかし Ajax を用いると，サーバからの応答を待つことなしに，次の作業を行うことができるため，スピーディな動作が可能となる．
また，Ajax 自体は Javascript や XML などの既存の技術の組み合わせであり，また，特別なソフトをインストールする必要も無いため，標準的な機能を持ったブラウザであれば，容易に動作するというメリットもある．
逆に欠点として，ブラウザ間での仕様の違いを考慮し な け れ ば な ら な い 点 が あ る ． 例 え ば ， Internet
Explorer では，Javascript の標準仕様に従っておらず，JScript という Javascript とある程度互換性を持ったスクリプト言語を用いるため，仕様が違う部分については，その都度対処しなければならない．
しかしこれらの動作の違いは，近年 prototype.js などのライブラリが公開させており，これらを用いることで容易に対処できるようになってきている．

3.2 WebAPI の問題点
WebAPI の問題点として，基本的には他者に依存しているサービスである，ということが挙げられる．
WebAPI を用いる際，公開しているサービスの利用規約には目を通しておかなければならない．
また，WebAPI を公開しているサイトが，公開を止めてしまうこともありうる．その対策として，類似の機能を持った API を探しておくなど，代替の手段を常に準備しておくことが望ましい．
WebAPI を用いたサイトを，公開前にローカルでテストしたい場合でも，ローカルで利用することを許していない API が存在する。この場合，Web 上にアップロードしてテストを行わなければならないため，特にレンタルサーバなどの他人と共有しているスペースを利用する
場合には，サーバに無用な負荷をかけて，サーバを共用するユーザに迷惑をかけないよう，注意しなければならない．

南山大学 数理情報学部 情報通信学科 2007 年度卒業論文要旨集

4. WebAPI を用いたページ作成

同値にする．

4.1 Google AJAX Search API について
Google AJAX Search API とは，Google 社が提供する，WebAPI の一つである．これは，Google の検索機能をユーザへと提供する API である．これを用いて，自分の Web ページやブログに Google の検索機
能を設置することや，これから情報を取得し，他の APIなどと組み合わせることができる．ＡＰＩキー取得時に表示されるサンプルではローカル検索，ウェブ検索，ビデオ検索，ブログ検索が利用できるほか，イメージ検索などもあり，幅広い検索機能が利用できるようになっている．また，Ajax の利用により，検索結果の表示もスムーズに行われる．
4.2 ページの設置
Google AJAX Search API を設置するには，まずAPI キ ー を 取 得 す る 必 要 が あ る ． 取 得 す る に は ，Google AJAX API ページにアクセスする必要がある．
ページ下部の入力フォームにＵＲＬを入力し，利用規約に同意する旨のチェックボックスにチェックを入れ，Generate API key と書かれたボタンをクリックすることで発行される．
ＷｅｂページでこのＡＰＩを利用するには，まず，検索ボックスを設置する．設置するには以下のリスト１のように記述する．

function OnLoad() {varsearchControl=
newgoogle.search.SearchControl();
var localSearch = new google.search.LocalSearch();searchControl.addSearcher(localSearch);searchControl.addSearcher(newgoogle.search.WebSearch());
searchControl.addSearcher(newgoogle.search.VideoSearch());
searchControl.addSearcher(newgoogle.search.BlogSearch());
SearchControl.draw(document.getElementById("searchcontrol"));}
リスト２ 検索処理

5. 評価
Google AJAX Search API，Google Map API を用いて Web ページを作成することができた．作成にかかったプログラム行数は，表１の通りである．

使用した API行数

Google AJAX
Search API

google_ajax_search.html

55

GoogleAPI

index.html

17main.js
Job_service.css

1263

MAP

<div id="searchcontrol"></div>
リスト１ ボックスの設置の設定
div タグと下記に記述する id 名を指定して記述するのみで，設置は終了する．
次に，検索処理を行う部分をリスト２に記述する．
まず，google.search.SearchControl()で，検索処理を行うためのコントロールを生成する．次に，利用したい検索を指定する．上記で言うと，ローカル検索を利用したい場合はaddSearcher(newgoogle.search.localSearch()) を指定する．追加したい場合は，Web 検索なら同様にaddSearcher(new google.search.WebSearch())を，ビデオ検索をなら，addSearcher(new.google.VideoSearch())を，ブログ検索なら addSearcher(new.search.BlogSearch())を追加して指定すればよい．
最後に，検索ボックスの表示処理を指定する．
この検索ボックスは, searchControl.draw (document.
getElementById("searchcontrol"))と指定する．この時のパラメータは，前述の div タグで指定してある id と

表 1 プログラム行数
ファイル名

6. 今後の課題
今後は，いくつかのサービスを作成し，それにより問題点を突き詰めたい．また，Google 社提供のＡＰＩに留まらず，他で提供されている WebAPI を用いてサービスを作成していきたい．

7. まとめ本研究では、Google 社が提供する，Google AJAX
Search API の設置を行い, Ajax と WebAPI を用いたサービスについて研究した．

参考文献
[1]
[2]

高橋 登史朗，入門 Ajax， ソフトバンククリエイテ
ィブ，2005．
関 正秀ほか，WebAPI マッシュアップブック，毎日コミュニケーションズ，2006．