WCF Web API その2 クライアントコード

※ご注意
WCF Web APIはマイクロソフトにより現在開発はキャンセルされ、ASP.NET MVC 4のASP.NET Web APIとして制作・公開されています。

.NET Framework/ASP.NETでRESTfulなAPI構築を目的に記事を探されている方は是非以下のリンクからASP.NET Web APIについてご確認下さい。
http://opcdiary.net/?page_id=5981


WCF Web APIその2として、クライアントサイドでのWeb APIの使用方法です。

WCF Web APIには昨日投稿したサーバーサイドでのライブラリの他に、クライアントサイドで使用するライブラリも用意されています。またWeb APIとなってからの特徴として、各HTTPコマンドの実行が.NET 4のTaskライブラリを使用した非同期実行になっていることが上げられます。

コンソールアプリケーションプロジェクトの作成

新規、もしくは昨日のソリューションに追加する形でWindowsコンソールアプリケーションのプロジェクトを作成します。

プロジェクトファイルを右クリックしてプロパティを選択し、表示させます。

アプリケーションタグを開いて、対象のフレームワークとして「.NET Framework 4」もしくは「.NET Framework 4.02」を選択します。つまり、クライアントプロファイルは選択せずに、フルセットの.NET Frameworkを選択します。(下図参照)

NuGetを利用して、サーバー側のときと同じくWebApi.Allを追加します。

using句の追加

Program.csを開いて、以下のusing句を追加します。

データクラスの追加

クライアントサイドで使用するためのデータクラスを追加します。

HTTP GETリクエスト

ヒーローのリストをサービスから取得して、コンソールに表示させます。コードの説明についてはコード内のコメントを参考にしてください。
WCF RESTと決定的に違うのはGETもその先の結果の取得も非同期に行われる点で、具体的な結果の使用は継続を利用して記述します。

HTTP POSTリクエストの送信

サービスにヒーローを追加し、応答のステータスコードと結果の内容をコンソールに表示させます。コードの説明についてはコード内のコメントを参考にしてください。

このコードで(14行目)使用しているObjectContent(T)はCLRのオブジェクトをシリアライズするために使用しています。また2番目の引数でメディアタイプを指定することができ、このコードではJSONへのシリアライズを指定しています。

HTTP DELETEリクエスト

引数idで指定されたヒーローを削除します。

HTTP PUTリクエスト

HeroIdが2のヒーロー名を変更します。

全体コード

ファイル名:Program.cs

全体ダウンロード

「WCF Web API その2 クライアントコード」への2件のフィードバック

コメントを残す