連載:世界のWebサービス 第1回 Web Services for Smart Searching 2.とりあえずプロジェクトに組み込んでみる田口景介 |
それでは、 Web Services for Smart Searchingを使って、簡単なWebアプリケーションを作ってみることにしよう。そのためには、まずuddi.microsoft.comで見つけたasmxファイル(http://beta.search.microsoft.com/search/mscomsearchservice.asmx)をブラウザで開き、Webサービスの仕様を調べる必要がある。開いてみると、残念ながら「No Additional Reference Information」と表示され、詳細なリファレンス・マニュアルは用意されていないことが分かる。それでも、Webサービスが公開しているWebメソッドは分かるし、Visual Studio.NETに組み込めばもう少し詳細な情報が表示されるので、メソッド名からあたりをつければ、何とかなるだろう(もちろん、これは本来の手順ではないのだが…)。
それでは、Visual Studio.NETでプロジェクトタイプに[Webアプリケーション]を指定して、C#のプロジェクトを作成してみよう。
サービスの追加その1−新しいプロジェクトの作成 |
||||||||||||
Webアプリケーション・プロジェクトを作成する。プログラミング言語にはC#を選択する。[場所]の部分を見ると分かるように、WebアプリケーションのソースコードはWWWサーバ上に保管される。 | ||||||||||||
|
次に、プロジェクトを構成するファイルの一覧が表示された[ソリューションエクスプローラ]ウィンドウの[Web参照]を右クリックして、表示されるポップアップ・メニューから[Web参照の追加]を実行する。
サービスの追加その2−Web参照の追加 |
||||||
Webサービスを追加するには、画面右上のソリューション エクスプローラでプロジェクト名を右クリックし、表示されるポップアップ・メニューから[Web参照の追加]を実行する。 | ||||||
|
すると次のような簡単なブラウザ・ウィンドウが表示されるので、[アドレス]にさっき調べておいたasmxファイルへのURLを入力して、ページを表示する。そして、[ファイルの参照]ボタンをクリックすれば、プロジェクトにWebサービスが組み込まれる。
サービスの追加その3−Web参照用の簡易ブラウザ |
|||||||||
[Web参照の追加]を実行すると、簡易ブラウザが表示されるので、asmxファイルへのURLを指定し、[ファイルの参照]ボタンをクリックする。 | |||||||||
|
以上の作業を終えてクラス ビューを見ると、次の画面のように5個のC#クラスが自動的に生成されていることが分かる(MSComSearchServiceクラスなど)。
自動生成された5つのクラス |
||||||
[Web参照の追加]を実行すると、Webサービスへのアクセスに利用するクラスが自動生成される。画面に表示されているBestBetItem以下5つのクラスがそれ。ネームスペースには、Webサービスが登録されたサイトのドメイン名が使われる。 | ||||||
|
これがWebサービスへのアクセスに利用するクラスで、このクラスのオブジェクトを作成し、メソッドを呼び出せば、Microsoftのサーバで動作しているWebサービスが処理を行い、結果を戻す。先ほどVisual Studio.NETで行った[Webサービスの組み込み]とは、Webサービスのインターフェイスを調べて、対応するクラスを生成する作業であり、何がしかのソースコードをダウンロードしたりすることではない。
WebアプリケーションとWebサービスの関係 |
今回作成したWebアプリケーションはローカルマシンのWWWサーバ(IIS)上に登録されているが、Webサービスの実体はMicrosoftのサーバ上で動作する。 |
また、生成されたクラスを利用すれば、Webサービスの呼び出しは単なるメソッドの呼び出しとして記述できるため、XMLやSOAPなど、Webサービスの基盤となる技術の知識はいっさいなくともサービスが利用できる。そういった内部的な処理はすべて.NET Frameworkが吸収してくれるからだ。これはWebサービスを開発するときも同じである。Webサービスを完全に理解するには、XMLやSOAPといった細部を無視することはできない。しかしこのような理由から、まずは.NET Frameworkに目を向けるべきだろう。
こうしてWebサービスを呼び出す準備は整ったものの、やはり詳細な情報は不明なままなので、ここからは当てずっぽうでいくしかない。泣き言を言っていても始まらないので、とりあえず生成されたクラスの内容を眺めてみると、どうやらMSComSearchServiceクラスのオブジェクトを作成し、検索文字列をパラメータとしてMSComSearchService.GetBestBetsメソッドを呼び出せば、検索結果が戻されるというサービスのようだ。
関連リンク | |
asmxファイル |
INDEX | ||
[連載]世界のWebサービス―― 究極のWebサービスを求めて ―― | ||
第1回 Web Services for Smart Searching | ||
1.Webサービスはここで探せ! | ||
2.とりあえずプロジェクトに組み込んでみる | ||
3.Webアプリケーションから呼び出してみよう | ||
「世界のWebサービス」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|