1.ミドルウェアとは
Web フレームワークは http リクエストをパイプラインにカプセル化し、各リクエストは作成したコードに到達する前にパイプラインを介した一連の操作であることは誰もが知っています。ミドルウェアは、要求と応答を処理するアプリケーション パイプラインを形成するために使用されるコンポーネントです。パイプライン内の各コンポーネントは、リクエストを次のコンポーネントに転送するかどうかを選択し、パイプライン内の次のコンポーネントを呼び出す前後に特定のアクションを実行できます。リクエスト デリゲートはリクエスト パイプラインを確立するために使用され、リクエスト デリゲートは各 HTTP リクエストを処理します。
ミドルウェアには、次の 2 つの基本的な役割があると考えることができます。
パイプライン内の次のミドルウェアにリクエストを渡すかどうかを選択します。
パイプライン内の次のミドルウェアの前後に一部の作業を実行できます。
2. ミドルウェアの概念図
ミドルウェアを追加する
以下はミドルウェアの追加をシミュレートします
スタートアップの構成に追加
使用または実行によって追加できます
また
Use を使用してリクエストを次のミドルウェアに渡します。await next(); を使用して渡すことができます。次のミドルウェアがない場合はエラーが報告されます。実際、エラーもミドルウェアであり、これが最後のミドルウェアです。
Run を使用して、リクエスト パイプラインをショートするために特別に使用されるターミナル ミドルウェアを追加します。最後に、各ミドルウェアは、リクエストを次のミドルウェアに渡すか、直接応答するかを決定する権利を持ちます。パイプラインとは、リクエストを渡す代わりに、リクエストを終了して応答を開始することを意味します。
ミドルウェアはシーケンシャルです
ミドルウェアが追加される順序は、リクエストがこれらのミドルウェアを呼び出す順序です。
要求と応答、方向が逆、順序も逆
実行順序を見てください
3. カスタムミドルウェア
合意
1. RequestDelegate 型のパラメーターを持つパブリック コンストラクター
2. Invoke または InvokeAsync という名前のメソッド
3. タスクは返却する必要があります
4. 最初のパラメータは HttpContext である必要があります
カスタムミドルウェア
ミドルウェアを追加する
システムにミドルウェアを追加するプロセスを模倣する拡張メソッドを追加します。
使用