首页 > 解决方案 > 使用 NSwag 和 C# 对控制器名称或标签进行排序

问题描述

我有一个想要使用 Swagger 的 ASP.Net Core 解决方案。为此,我使用 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"
                };
            };
        });
}

当我运行它时,我正确地看到了所有控制器和相应的方法,但它没有按字母顺序排序。

我已经尝试了以下方法:

但是这些更改会导致相同的输出。如何实现排序?

标签: c#swagger-uinswag

解决方案


我遇到过同样的问题。但是在升级 NSwag.AspNetCore -> 12.0.8(撰写本文时的最新版本)并替换现在使用的方法Obsolete之后

s.TagsSorter = "alpha";
s.OperationsSorter = "alpha";

推荐阅读