演習 - Web API プロジェクトを作成する

.NET Core CLI は、ASP.NET Core Web API を作成するための最も簡単な方法です。 このユニットで使用する Azure Cloud Shell 環境には、CLI がプレインストールされています。

このユニットでは、右側の Cloud Shell コマンド シェル内で、.NET Core CLI を使用して Web API を作成します。 結果として作成されるプロジェクトについても理解できます。

Web API プロジェクトの作成

注意

続行する前に、サンドボックスをアクティブ化したことを確認します。

Web API プロジェクトをスキャフォールディングして調べる

  1. コマンド シェルで次の .NET Core CLI コマンドを実行します。

    dotnet new webapi -o contoso-pets/src/ContosoPets.Api
    

    ヒント

    [コピー] ボタンを使用すると、コマンドをクリップボードにコピーできます。 貼り付けを行うには、Cloud Shell ウィンドウ内で新しい行を右クリックし、[貼り付け] を選択するか、または Shift + Insert キーボード ショートカットを使用します (macOS では ⌘+V)。

    上記のコマンドでは、ASP.NET Core プロジェクト テンプレート (別名 webapi) を使用して、C# ベースのスターター Web API プロジェクトをスキャフォールディングします。 contoso-pets/src/ContosoPets.Api ディレクトリ構造が作成されます。これには .NET Core をターゲットとする ASP.NET Core プロジェクトが含まれています。 プロジェクト名は ContosoPets.Api ディレクトリ名と同じです。

  2. 次のコマンドをコマンド シェルで実行します。

    cd ./contoso-pets/src/ContosoPets.Api
    

    現在のディレクトリが、新しく作成した ContosoPets.Api ディレクトリに変わります。

  3. 次のコマンドをコマンド シェルで実行します。

    code .
    

    Azure Cloud Shell エディターContosoPets.Api プロジェクト ディレクトリが開かれます。

  4. 次のファイルとディレクトリを調べます。

    名前 説明
    Controllers/ HTTP エンドポイントとして公開されるパブリック メソッドを含むクラスが含まれます。
    Program.cs アプリのマネージド エントリ ポイントである Main メソッドが含まれます。
    ContosoPets.Api.csproj プロジェクトの構成メタデータが含まれます。
    Startup.cs サービスとアプリの HTTP 要求パイプラインを構成します。

ビルドおよびテスト

  1. コマンド シェルで次の .NET Core CLI コマンドを実行します。

    dotnet run > ContosoPets.Api.log &
    

    上記のコマンドでは次のことが行われます。

    • プロジェクトの NuGet パッケージが復元されます。
    • プロジェクトのコードがビルドされます。
    • ASP.NET Core の Kestrel Web サーバーで Web API がホストされます。
    • バックグラウンド タスクのプロセス ID が表示されます。

    .NET Core では、ログ情報が出力されて、コマンド シェルの入力がブロックされます。 コマンド シェルは、実行中のアプリのテストに使用できる必要があります。 そのため、dotnet run の出力は、ContosoPets.Api.log テキスト ファイルにリダイレクトされます。 さらに、& により、コマンド シェル入力のブロックを解除するため、アプリはバックグラウンド タスクとして実行されます。

    Web API は、http://localhost:5000https://localhost:5001 の両方でホストされます。 このモジュールでは、https で始まるセキュリティ保護された URL を使用します。

    重要

    予期しない動作が発生した場合は、ContosoPets.Api.log を確認します。 ビルドが失敗する場合、または他のエラーが発生した場合は、ログ ファイルの情報がトラブルシューティングに役立ちます。 コードの変更を加える場合は、kill $(pidof dotnet) を実行して、すべての .NET Core アプリを再度実行される前に停止します。

  2. Web API に HTTP GET 要求を送信します。

    curl -k -s https://localhost:5001/api/values | jq
    

    注意

    curl は、Web API および他の HTTP エンドポイントをテストするための、クロスプラットフォームのコマンドライン ツールです。

    上記のコマンドにより次に示すものが使用されます。

    • HTTPS を使用して、localhost のポート 5001 で実行されている Web API に要求を送信します。 ValuesController クラスのパラメーターのない Get アクション メソッドによって、要求が処理されます。
    • -k オプションを使用して、HTTPS を使用しているときは、安全でないサーバーの接続を curl で許可する必要があることを示します。 .NET Core SDK には、テスト用の HTTPS 開発証明書が含まれています。 既定では、この証明書を使用するセキュリティ保護された接続は curl で拒否されます。
    • -s オプションを使用して、JSON ペイロードを除くすべての出力を抑制します。 JSON は、より適切に表示するため、jq コマンドライン JSON プロセッサに送信されます。

    次の JSON が返されます。

    [
      "value1",
      "value2"
    ]
    
  3. .NET Core アプリによって生成されたすべてのプロセスを停止します。

    kill $(pidof dotnet)
    

これで Web API が作成されたので、これを小売業者のニーズに合うように変更しましょう。