MapHttpRoute к интерфейсу Swashbuckle Swagger для использования собственного обработчика - PullRequest
0 голосов
/ 19 мая 2018

У меня есть Swashbuckle в моем проекте веб-API.Я хочу, чтобы пользовательский обработчик вызывался только тогда, когда пользователь пытается попасть на страницу пользовательского интерфейса.Я не хочу добавлять обработчик в конвейер.

Я думал, что-то вроде этого может работать, но это не так:

config.MapHttpAttributeRoutes();
    config.Routes.MapHttpRoute(
        name: "SwaggerUI",
        routeTemplate: "docsite/{*assetPath}",
        defaults: null,
        constraints: null,
        handler: new MyHandler() { InnerHandler = new HttpControllerDispatcher(config) }

Я использую атрибуты маршрута везде в проектепоэтому я сначала сопоставляю эти атрибуты.

Моя конфигурация swagger использует

.EnableSwaggerUi("docsite/{*assetPath}",c =>

, следовательно, маршрут документа.

Я не хочу добавлять обработчик в конвейерпотому что я не хочу, чтобы его вызывали при каждом вызове веб-API.Я использую его для ограничения доступа к пользовательскому интерфейсу Swagger.

Также я использую OWIN для аутентификации одного конкретного API, поэтому я получаю эту ошибку при попытке вызвать этот API

The 'DelegatingHandler' list is invalid because the property 'InnerHandler' of 'MyHandler' is not null.
Parameter name: handlers

Понял, что я могу избежать ошибки, просто следя за тем, чтобы обработчик происходил только тогда, когда я делаю хитрый UI-маршрут.

Кто хочет помочь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...