WPFを中心に書いています。Technologies。App初心者向けのエントリーです。対象読者は以下を想定しています。Windows版を想定)とりあえず無料で試したい大丈夫。私も右も左も分からない中からできたので、誰でもできます。本エントリーではRESTクライアントも自動生成しますが、それはXamarinからも利用可能なもの。1.4以上が必要なので、PCLからは利用できません)。この手の記事は鮮度が非常に重要です。本エントリーは2017年7月11日時点の情報に則って記載しています。それでは解説を始めましょう。Appサイトを作成するAzureは疎いので上の表現は不適切かもしれません。API絡みの表現に不適切な内容が含まれるかもしれませんが、その場合はコメントなりTwitterなりでご指摘いただけると嬉しいです。Appのリソースを作成します。App」で検索してください。Appから作成しましょう。Appsを選択したら、つぎの画面の「作成」ボタンを押下してください。つづいて、以下の画面から必要情報を入力します。12は適切な名称を自由につけてください。グローバルで一意である必要があるため(1のみ?)、イメージ上の名称は利用できません(私が消すまで)。デフォルトで作成すると有料プランになります。このため今回は3の「プラン/場所」を変更します。その上で4の新規作成を選択します。サービスプランの作成画面が表示されるため1に適当なサービスプラン名を入力し、2でサービスを展開する地域を指定します。Eastを選ぶとよいでしょう。3価格レベルを選択します。Serviceプラン」で「OK」を押下します。これですべての設定が完了しました。次の画面で「作成」しましょう。これでひとまずAzure上での作業は終了です。Studioを開きましょう。Core)を選んでプロジェクトを作成しましょう。ここではHelloServiceとしています。プロジェクト名等を入力し、「OK」ボタンを押下すると次のような画面が表示されます。API」を選んで「OK」ボタンを押下してください。するとプロジェクトのひな型が作成されます。Controllersフォルダを開いて中を覗いてみると、ValuesControllerが作成されていることが見て取れるでしょう。これはこのままで動作しますので、まずはこれをそのまま公開してしまいましょう。APIをAzure上に公開するそれではAzure上へ「HelloService」を公開します。「HelloService」プロジェクトを右クリックし、「発行」メニューを選択してください。Service」を選び、ラジオボタンは「既存のものを選択」を選んで「発行」ボタンを押下します。Studio上でAzureへすでにログインしていれば、次のような画面が開きます。ログインしていない状態であれば、右上からログインしてください。Appが見えるはずです。それを選択し「OK」を押下しましょうするとAzure上への発行が行われます。発行が完了したらブラウザからAPIを呼んでみましょう。APPの名称.azurewebsites.net/api/Values」と打ち込んでみて、次のように表示されたら公開までは成功です。ホスト名は良いとして、「api/Values」はどこからでてきたのでしょうか?もう一度、ValuesControllerのソースを見てみましょう。クラスにRoute属性が付与されており、そこで"api/[controller]"と指定されているのが見て取れます。これでなぜ上のアドレスでアクセスできたかわかりましたね?もちろん自由に変更可能です(どこまで自由化分かりませんが)。APIがWeb上に公開された状態となりました。APIを呼び出すコードを自動生成します。APIのメタデータが必要です。APIのメタデータとAPIのビューワーを合わせたものにSwaggerがあります。ここでは先ほど作成したHelloServiceプロジェクトでSwaggerを組み込んで、そのメタデータからクライアントを自動生成できるよう準備します。Webアプリケーションでは、「Swashbuckle.AspNetCore」というライブラリをNuGetからインストールすることで簡単にSwaggerを公開することができます。NuGetからつぎのパッケージを追加してください。追加したら、プロジェクト直下にあるStartup.csを開きましょう。すると次のようなコードがあります。app.UseMvc();}このうち、ConfigureServicesメソッドとConfigureメソッドをそれぞれ次のように修正します。app.UseSwagger();}以上で準備は終了です。APPの名称.azurewebsites.net/swagger/v1/swagger.json」を開いてみましょう。次のような感じで表示されたら、正常に改修が完了しています。このあたりの詳細はSwashbuckle.AspNetCoreのGithubに公開されていますので、見てみるとよいでしょう。さあ、それではいよいよRESTクライアントの自動生成です。StudioではRESTクライアントを簡単に自動生成する仕組みが存在します。Frameworkのプロジェクトでしか作成できません。Frameworkプロジェクト上でのみしか作成ができないのです。Frameworkのプロジェクトを作成します。ここでは「HelloMock」という名称で作成しました。APIクライアント」を選択しましょう。Uri」に先ほどブラウザで表示したSwaggerのアドレスを、クライアント名前空間には「HelloConsole」と入力し「OK」ボタンを押下します。するとこのように3つのクラスが自動生成されます。これでひとまずコードの自動生成は完了です。Coreのプロジェクトにコピーすると、それらのプロジェクトから利用できます。Coreのコンソールアプリケーションから利用する手順を解説します。Coreのコンソールアプリケーションを作成してください。ここでは「HelloConsole」という名称で作る想定とします。そのうえで、自動生成されたRESTクライアントを実行するために必要なパッケージをNuGetからインストールします。つぎのように「Microsoft.Rest.ClientRuntime」を追加してください。先ほど自動生成された3つのクラスをこちらのプロジェクトへ貼り付けます。実際に呼び出してみましょう。「Program.cs」を開き、次のコードを追加しましょう。Console.ReadKey();}Uriは適宜各自のアドレスを入力してください(もっともこのままでも、私がサイトを放置している限りは動きますが、いつ止まるかわかりません)。すると次のように表示されれば、値が取得されてきていることが分かるはずです。お気づきの方もいらっしゃるでしょう。ValuesControllerで定義されていたメソッド名はGetなのに、自動生成されたクライアントのメソッド名がApiValuesGetになっています。この名前はちゃんとカスタマイズできます(が、なんでデフォルトがこれなんでしょうね?)。クライアントのメソッド名を任意の名称に更新するクライアントのメソッド名を変更する事は、APIのメソッドに属性で名称を指定することで可能となります。};}SwaggerOperation属性を利用して明示的な名称を指定する再公開するクライアントを再度自動生成するという手順で任意の名称のメソッドで呼び出すことが可能となります。Core」は終了です。今回のコードはGithubにも公開していますので、よかったらご覧ください。(1)はてなブログをはじめよう!nuitsjpさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。