Webサービスマッシュアップを利用した Webアプリケーションの開発 J0333 福島美菜 (越田研究室) 1.背景 ・Web2.0といわれる新しいインターネットの時代 ・Webサービス 移行 SOAP REST ・マッシュアップ Yahoo Google Amazon REST型Webサービス REST型Webサービス REST型Webサービス 組 み 合 わ せ る 新しい Webサービス マッシュアップ マッシュアップの利点 例:おいしいラーメン屋さんに行きたい! 今までは ラーメン屋さんは? グルメサイト その店の地図は? 地図サイト その店までの行き方は? 交通情報 サイト ユーザーにとって、複数のサイトにまたがる関連情報を集めるのが大変 マッシュアップの利点 マッシュアップとは ・・・ 複数のWebサービスを目的に応じてまとめて 新しいWebサービスを作り上げること Webサービスの マッシュアップ ユーザの手間を省く ラーメン屋さんは? グルメサイト その店の地図は? 地図サイト その店までの行き方は? 交通情報 サイト 2.研究目標 マッシュアップを利用したシステム開発を通して Web2.0時代のWebアプリケーション開発技術 の習得を目的とする ・REST型Webサービス ・JavaScript言語 ・JSON ・マッシュアップ コスメティック検索システム 3.コスメティック検索システムの開発 化粧品は女性にとって必需品であるが、最適な化粧品の選択は難しい 3.1 システムの概要 ①年齢、予算、肌質などの項目指定とキーワードによる検索を行う、 さらにコスメティックを検索する ②検索結果で表示されたコスメティックの価格とレビューを表示する ③検索キーワードに対応したコスメティック使用画像を表示する ●開発言語 JavaScript ●REST型Webサービス ・Yahoo Webサービス ・Flickr Webサービス 3.2 システムの内容 入力画面 キーワー ドを入力 する 項目を 指定する Webサービス実行のプログラム部分 ◆日本のYahoo Web サービスはoutput関 数とcallback関数を提 供していない ◆アメリカのYahoo Webサービスを利用す る obj.s = document.createElement('script'); obj.s.type ='text/javascript'; obj.s.charset ='utf-8'; obj.s.src=‘http://search.yahooapis.com/WebSearchService/V1/webS earch? appid=ユーザID &output=json(出力フォーマット) &callback=出力結果を処理する関数名 &results=出力結果の数 &type=all キーワードと指定し た項目を組み込む &query='encodeURIComponent(obj.q.value) +'+‘ +encodeURIComponent(obj.hada1[memo2].value)+'+‘ +encodeURIComponent(obj.style1[memo].value)+'+‘ +obj.cosme1[memo3].value+'+‘ +encodeURIComponent(obj.eye1[memo4].value)+'+‘ +obj.year1.value; document.getElementsByTagName('head')[0].appendChild(obj.s); XML形式の出力データ XMLとJSONの出力データ XML形式 JSON形式 ListingInfo: { <ListingInfo> Request: { <Request> Parameters: { <Parameters> Parameter: [ <Parameter value="あいうえお" name="keyword" /> { value: "あいうえお", name: "keyword" }, <Parameter value="Shift_JIS" name="enc" /> { value: "Shift_JIS", name: "enc" }, <Parameter value="xml_lite4" name="tf" /> { value: "xml_lite4", name: "tf" }, <Parameter value="FP" name="at" /> { value: "FP", name: "at" }, <Parameter value="10" name="ipp" /> { value: "10", name: "ipp" }, <Parameter value="777" name="categ_id" /> { value: "777", name: "categ_id" } </Parameters> ] </Request> } </ListingInfo> } } Webサービスの出力データの解析 入力した検索キーワ ードを引数にして Flickrで画像検索を 行う。 コールバック関数: function(z) { abc.text = obj.q.value; photo_search(abc); obj.r.innerHTML = ''; for(var i = 0; i < z.ResultSet.Result.length; i++){ var li = document.createElement('li'); var a = document.createElement('a'); 検索結果のURLを表 示する。 [innerHTML]プロパ ティを使ってタイトル、 商品情報をHTMLデ ータで表示する。 a.href = z.ResultSet.Result[i].ClickUrl; a.innerHTML = z.ResultSet.Result[i].Title; li.innerHTML = 'Summary : ' + z.ResultSet.Result[i].Summary+'<br> '; li.appendChild(a); obj.r.appendChild(li); } }, Flickr 画像検索実行部分 function photo_search ( param ) { param.api_key = ユーザID; param.method = 'flickr.photos.search'; param.per_page = 10; param.sort = 'date-posted-desc'; param.format = 'json'; param.jsoncallback = 'jsonFlickrApi'; Flickrで検索するた めに必要な情報を設 定する var url = 'http://www.flickr.com/services/rest/?'+ obj2query( param ); 検索キーワードを組み込ま せた、画像検索のための URLを変数に代入する var script = document.createElement( 'script' ); script.type = 'text/javascript'; script.src = url; document.body.appendChild( script ); }; その変数を使用し、 画像検索を行う 出力画面 Webサー ビスの検 索結果 Flickr の検索 結果 4.終わりに まとめ ◆JavaScript言語、JSON形式、callback関 数などの技術を使ってYahooとFlickrの REST型Webサービスをマッシュアップしたコ スメティック検索システムを開発した ◆Webサービスの出力結果の解析や最適な 検索結果を得ることが難しかった 今後の課題 ◆検索キーワードと入力パラメータにうまく適合 したサイト、またコスメティックが表示されるよう にする ◆検索キーワードと入力パラメータに対応した コスメティックの使用画像を表示できるようにす る コスメティック検索システム
© Copyright 2024 ExpyDoc