演習 - 組み込みのミドルウェアを使用する

完了

ASP.NET Core には、ルーティング、認証、HTTP ログなどの一般的なタスクを処理する組み込みミドルウェア コンポーネントのセットが含まれています。 これらのコンポーネントを使用して、カスタム ミドルウェアを作成することなくアプリに機能を追加できます。

チーム リーダーから、会社の最小限の Web サイトを作成する作業を任されました。 Web サイトでは、メイン ページにウェルカム メッセージを表示し、別の /about ページに会社の簡単な沿革を表示する必要があります。 以前のバージョンのアプリでは、/history URL に会社沿革があったので、既存のリンクとの互換性を維持するために、/history から /about に要求をリダイレクトする必要があります。

組み込みの MapGet メソッドと UrlRewriter ミドルウェアを使用して、これらのタスクを実行します。

ASP.NET Core アプリを作成する

チームのアプリの役割を果たすには ASP.NET Core アプリが必要です。 Visual Studio Code の C# 開発キット拡張機能を使用して、新しい ASP.NET Core アプリを作成してみましょう。

  1. Visual Studio Code を起動します。

  2. Ctrl + Shift + P キーを押してコマンド パレットを開きます。

  3. .NET: 新しいプロジェクトを検索して選択します。...

  4. ASP.NET Core Empty を検索して選択します。

    ASP.NET Core Empty が選択されているコマンド パレットのスクリーンショット。

  5. 新しいプロジェクト用のフォルダーを選択または作成します。

  6. 新しいアプリに MyWebApp という名前を付けます

  7. [ プロジェクトの作成] を選択してプロジェクトを作成します。

  8. 新しいプロジェクトが開いたら、Solution Explorer ペインを展開してプロジェクト ファイルを表示します。

アプリを実行する

アプリをテストして、実行されることを確認します。

  1. Visual Studio Code で 、F5 キーを押してアプリをビルドして実行します。

    1. メッセージが表示されたら、デバッガーとして C# を選択します。
    2. メッセージが表示されたら、使用する起動 構成として C#: MyWebApp [既定 の構成] を選択します。

    このコマンドは、アプリを起動し、それをローカル Web サーバーでホストします。 ブラウザー ウィンドウが開き、"Hello, World!" と表示されます

  2. Visual Studio Code で Shift キーを押しながら F5 キーを押して、ブラウザー ウィンドウを閉じてアプリを停止します。

エンドポイントをマップし、URL リライターを追加する

これで動作するアプリが作成されたので、メイン ページにウェルカム メッセージを追加しましょう。

  1. Program.cs ファイルを開きます。

  2. app.MapGet("/", () => "Hello World!"); 行で、"Hello World!" メッセージを "Welcome to Contoso!" に変更します

    app.MapGet("/", () => "Welcome to Contoso!");
    

    app.MapGet() は、HTTP GET 要求を指定されたパスにマップします。 ASP.NET Core のこの機能は、 エンドポイント ルーティングと呼ばれます。 このコードはパイプラインにブランチを追加します。 要求パスが / の場合、エンドポイント ルーティング ミドルウェアは要求をこのエンドポイントにルーティングし、その後応答に "Welcome to Contoso!" と書き込みます。

  3. その次の行に、次のコードを追加します。

    app.MapGet("/about", () => "Contoso was founded in 2000.");
    

    このコードは、別のエンドポイントを追加します。 要求パスが /about の場合、エンドポイントは応答に "Our company was founded in 2000." と書き込みます。

  4. 最初のapp.MapGet()に、次のコードを追加します。

    app.UseRewriter(new RewriteOptions().AddRedirect("history", "about"));
    

    このコードは、要求を /history から /about にリダイレクトする URL リライター ミドルウェア コンポーネントを追加します。 AddRedirect() メソッドは、2 つのパラメーター (要求パスに一致する正規表現パターンおよびリダイレクト先の置換パス) を受け取ります。

  5. 次の `using` ディレクティブをファイルの先頭に追加します。

    using Microsoft.AspNetCore.Rewrite;
    

    このディレクティブでは、RewriteOptions クラスへの参照が解決されます。

変更内容をテストする

  1. すべての変更を保存し、前と同様にアプリを実行します。
  2. ブラウザー ウィンドウが開いたら、ルート URL に "Welcome to Contoso!" (Contoso へようこそ) と表示されることに注意してください。URL に /about を追加し、 Enter キーを押します。 ブラウザーに "Contoso was founded in 2000." と表示されます。
  3. /aboutを URL の/historyに置き換え、Enter キーを押します。 ブラウザーが /about にリダイレクトされます。
  4. 次の演習のために、このアプリを実行したままにします。