😊 Думаешь, хорошо разбираешься в
ASP.NET Core middleware?Этот пост поменяет твой взгляд на перехват HTTP-запросов
Middleware в
ASP.NET Core — это компонент, участвующий в конвейере обработки HTTP-запросов и ответов.Есть три подхода: на делегатах (inline), по соглашению (класс), и через
IMiddleware для кастомной логики.1⃣Сначала можно использовать метод
Use напрямую в конфигурации WebApplication.Такое middleware на основе делегата выполняется до и после следующего компонента в конвейере.
2⃣Если логика растёт — вынеси её в отдельный класс middleware по соглашению.
Класс должен иметь конструктор с
RequestDelegate и метод InvokeAsync.3⃣ Либо реализуй интерфейс
IMiddleware — это более безопасный, проверяемый компилятором способ.Зарегистрируй класс
IMiddleware в DI-контейнере, и фреймворк сам будет его разрешать.Но есть важные нюансы:
🟠 Middleware по умолчанию живёт как singleton, поэтому внедряй только singleton-зависимости.
🟠 Если нужны scoped-сервисы — передавай их через параметры InvokeAsync в middleware по соглашению.
Кастомные middleware используют для:
• логирования
• авторизации
• валидации
• модификации ответов
👉Новости 👉База вопросов
