XML Master Professionalの教科書を読んでいて、なかなかWebサービスのイメージがつかめなかったので、実際にWebサービスを使うプログラムを作成してみました。
Webサービスを提供するサイトはいろいろありますが、今回はYahooにします。
さらにYahooのWebサービスにもいろいろありますが、一番オーソドックスと思われるWeb検索について見てみます。
XML Masterの教科書ではSOAPによるWebサービスが紹介されていますが、Yahooで提供しているのはよりシンプルで簡単なREST形式です。
通常、Yahooのトップページの検索ボックスにキーワード(xxxxxx)を入力して検索ボタンを押すと、「http://search.yahoo.co.jp/search」というサーバーに「p=xxxxxx」というGETリクエストのパラメータが送られ、結果ページ(html)が表示されます。
Webサービスは同じような感覚で「http://search.yahooapis.jp/WebSearchService/V1/webSearch」というサーバーに「query=xxxxxx」というGETリクエストのパラメータを送ると結果(xml)を返してくれます。
ここで、通常の検索とWebサービスの違いは、サーバーに対してリクエストを投げるのが(ブラウザの検索ボタンを押す)人間かプログラムかという違いと、結果のフォーマットがhtmlかxmlかの違いです。
Javaプログラムからリクエストを投げ、結果をxmlファイルとしてローカルに保存するプログラム(部分抜粋)は下記のようになります。
「apple」という文字列で検索する(query=appleとする)と、下記のようなxmlファイルがC:\result.xmlとして保存されることになります。デフォルトの検索結果数は10件なので、「apple」という文字列で検索した結果がxml形式で10件分保存されているのがわかります。
例えば、テキストボックスと検索ボタンを持つページを作り、そこで入力、送信された値をサーブレットで受け取り、サーブレット中で上記のようなコードでYahoo Webサービスにリクエストを投げ、結果をxmlファイルとしてサーバー上に保存します。
そのxmlファイルをDOMやSAXといったAPIで処理し、必要な項目だけを抽出して、独自の検索結果ページを作成することが可能です。
|
|