Сортировка по имени контроллера или тегу с NSwag и C#

У меня есть решение ASP.Net Core, для которого я хочу использовать Swagger. Для этого я использую пакет Nuget NSwag (Assembly NSwag.AspNetCore, Version=11.20.1.0). В моей конфигурации приложения у меня есть следующее:

public void Configure(IApplicationBuilder app) {
    app..UseSwaggerUi3WithApiExplorer(settings =>
        {
            settings.GeneratorSettings.DefaultPropertyNameHandling = PropertyNameHandling.CamelCase;
            settings.PostProcess = document =>
            {
                document.Info.Version = $"v{typeof(Startup).Assembly.GetName().Version.Major}";
                document.Info.Title = "Test Api";
                document.Info.Description = "Sample API";
                document.Info.TermsOfService = "None";
                document.Info.Contact = new NSwag.SwaggerContact
                {
                    Name = "Person",
                    Email = "Email"
                };
            };
        });
}

Когда я запускаю это, я вижу правильно все контроллеры и соответствующие методы, но он не отсортирован по алфавиту.

Я уже попробовал следующее:

  • Добавить TagSorter в настройки:

    app.UseSwaggerUi3WithApiExplorer(settings =>
        {
            ...
            settings.TagSorter = "alpha";
            ...
        });
    
  • Добавить ApisSorter в настройки:

    app.UseSwaggerUi3WithApiExplorer(settings =>
        {
            ...
            settings.ApisSorter = "alpha";
            ...
        });
    

Но эти изменения приводят к тому же результату. Как я могу добиться сортировки?

1 ответ

Я была такая же проблема. Но после обновления NSwag.AspNetCore -> 12.0.8 (последняя версия на момент написания) и замены методов, которые сейчас Obsolete это работало с

s.TagsSorter = "alpha";
s.OperationsSorter = "alpha";
Другие вопросы по тегам