скажем, хочу я добавить некое логирование для вызовов эндпоинтов. Делаю атрибут, помечаю им эндпоинт в контроллере и затем пишу middleware, которое через внутренности аспнета достаёт данные о наличии этого атрибута у эндпоинта, который был вызван текущим запросом, есть атрибут присутствует- то логирую вызов или ещё что-то делаю. По этому сценарию есть примеры.
Есть также пример с логированием содержимого запросов, с ручным вычитыванием тела запроса, десериализацией, EnableUnwind/EnableBuffering или как там его. Но это подразумевает, что будет сделана двойная работа по интерпретации запроса: в нашем собственном middleware и в стандартном middleware для эндпоинтов.
А есть ли в аспнете некая стандартная возможность расширить сам стандартный же middleware для эндпоинтов? То есть, встроить обработчик не между разными middleware, а между диспетчеризацией запроса до эндпоинта и собственно вызовом метода в контроллере. И после вызова. То есть, подобие цепочки вызовов между разными middleware, но внутри конкретного, который UseEndpoints.
Ну тебе наверн нужен экшен фильтр? https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/filters?view=aspnetcore-5.0
Да, вероятно. Спасибо.
Обсуждают сегодня