演習 - 組み込みのミドルウェアを使用する
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 アプリを作成してみましょう。
Visual Studio Code を起動します。
Ctrl + Shift + P キーを押してコマンド パレットを開きます。
.NET: 新しいプロジェクトを検索して選択します。...
ASP.NET Core Empty を検索して選択します。
新しいプロジェクト用のフォルダーを選択または作成します。
新しいアプリに MyWebApp という名前を付けます。
[ プロジェクトの作成] を選択してプロジェクトを作成します。
新しいプロジェクトが開いたら、
Solution Explorerペインを展開してプロジェクト ファイルを表示します。
アプリを実行する
アプリをテストして、実行されることを確認します。
Visual Studio Code で 、F5 キーを押してアプリをビルドして実行します。
- メッセージが表示されたら、デバッガーとして C# を選択します。
- メッセージが表示されたら、使用する起動 構成として C#: MyWebApp [既定 の構成] を選択します。
このコマンドは、アプリを起動し、それをローカル Web サーバーでホストします。 ブラウザー ウィンドウが開き、"Hello, World!" と表示されます
Visual Studio Code で Shift キーを押しながら F5 キーを押して、ブラウザー ウィンドウを閉じてアプリを停止します。
エンドポイントをマップし、URL リライターを追加する
これで動作するアプリが作成されたので、メイン ページにウェルカム メッセージを追加しましょう。
Program.cs ファイルを開きます。
app.MapGet("/", () => "Hello World!");行で、"Hello World!" メッセージを "Welcome to Contoso!" に変更しますapp.MapGet("/", () => "Welcome to Contoso!");app.MapGet()は、HTTP GET 要求を指定されたパスにマップします。 ASP.NET Core のこの機能は、 エンドポイント ルーティングと呼ばれます。 このコードはパイプラインにブランチを追加します。 要求パスが/の場合、エンドポイント ルーティング ミドルウェアは要求をこのエンドポイントにルーティングし、その後応答に "Welcome to Contoso!" と書き込みます。その次の行に、次のコードを追加します。
app.MapGet("/about", () => "Contoso was founded in 2000.");このコードは、別のエンドポイントを追加します。 要求パスが
/aboutの場合、エンドポイントは応答に "Our company was founded in 2000." と書き込みます。最初のの
app.MapGet()に、次のコードを追加します。app.UseRewriter(new RewriteOptions().AddRedirect("history", "about"));このコードは、要求を
/historyから/aboutにリダイレクトする URL リライター ミドルウェア コンポーネントを追加します。AddRedirect()メソッドは、2 つのパラメーター (要求パスに一致する正規表現パターンおよびリダイレクト先の置換パス) を受け取ります。次の
`using` ディレクティブをファイルの先頭に追加します。using Microsoft.AspNetCore.Rewrite;このディレクティブでは、
RewriteOptionsクラスへの参照が解決されます。
変更内容をテストする
- すべての変更を保存し、前と同様にアプリを実行します。
- ブラウザー ウィンドウが開いたら、ルート URL に "Welcome to Contoso!" (Contoso へようこそ) と表示されることに注意してください。URL に
/aboutを追加し、 Enter キーを押します。 ブラウザーに "Contoso was founded in 2000." と表示されます。 -
/aboutを URL の/historyに置き換え、Enter キーを押します。 ブラウザーが/aboutにリダイレクトされます。 - 次の演習のために、このアプリを実行したままにします。