Swashbuckle OData отображение с EnableUnqualifiedNameCall

У меня есть следующее действие

POST / odata / Individuals ({individualId}) / Default.SendEmail

Создание документации Swagger с помощью Swashbuckle настроено и настроено для OData и документов правильно.

Когда я включаю безусловные вызовы имен с

config.EnableUnqualifiedNameCall(true);

маршрут работает правильно с

POST / odata / физические лица ({individualId}) / SendEmail

Однако Swagger по-прежнему показывает оригинал с «Default.»префикс, и тест больше не работает из пользовательского интерфейса Swagger.

Как я могу разрешить оба значения по умолчанию.SendEmail и SendEmail, или получить Swagger для обновления правильно на основе EnableUnqualifiedNameCall?

1 ответ

  1. То же самое случилось со мной, единственный способ, который я нашел, чтобы решить это было удаление префикса с регулярным выражением в documentFilter.

    c.DocumentFilter(() => new SwaggerDocumentFilter());

    class SwaggerDocumentFilter : IDocumentFilter
    {
        public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer)
        {
        swaggerDoc.paths = swaggerDoc.paths.Select(entry=>
          new {
            key = new Regex(ODataNameSpace + @"\.",
                      RegexOptions.Compiled | RegexOptions.IgnoreCase)
                .Replace(entry.key, string.Empty),
            value = entry.Value
         })
        }
    }
    

    Получение того же пространства имен, заданного в свойстве объекта ODataConventionModelBuilder (к сожалению, удаление этого параметра недопустимо)