C# 有没有办法在NSwag中自定义订单端点?

C# 有没有办法在NSwag中自定义订单端点?,c#,swagger,nswag,codegen,C#,Swagger,Nswag,Codegen,我正在使用NSwag生成代码文档,但希望能够自定义控制端点在生成的swagger端点上的显示顺序。可能通过控制器方法上的属性 我看不出有什么办法能做到这一点。其他一些帖子提到字母数字排序,但我需要能够定义自定义排序。有没有办法做到这一点 我的大摇大摆 public class SwaggerApiConfig { public Assembly TargetWebAssembly { get; } public Action<SwaggerUi3Settings<

我正在使用NSwag生成代码文档,但希望能够自定义控制端点在生成的swagger端点上的显示顺序。可能通过控制器方法上的属性

我看不出有什么办法能做到这一点。其他一些帖子提到字母数字排序,但我需要能够定义自定义排序。有没有办法做到这一点

我的大摇大摆

public class SwaggerApiConfig
  {
    public Assembly TargetWebAssembly { get; }

    public Action<SwaggerUi3Settings<WebApiToSwaggerGeneratorSettings>> ConfigureUiSettings { get; }

    public SwaggerApiConfig(
      string uiRoute,
      Assembly targetWebAssembly,
      string apiName,
      string description,
      string team = null,
      string appDocumentationUrl = null)
    {
      if (!uiRoute.StartsWith("/"))
        uiRoute = string.Format("/{0}", (object) uiRoute);
      this.TargetWebAssembly = targetWebAssembly;
      this.ConfigureUiSettings = SwaggerApiConfig.BuildSwaggerUiSettings(uiRoute, this.TargetWebAssembly, apiName, description, team, appDocumentationUrl);
    }

    public SwaggerApiConfig(
      Assembly targetWebAssembly,
      Action<SwaggerUi3Settings<WebApiToSwaggerGeneratorSettings>> configureUiSettings)
    {
      this.TargetWebAssembly = targetWebAssembly;
      this.ConfigureUiSettings = configureUiSettings;
    }

    public static Action<SwaggerUi3Settings<WebApiToSwaggerGeneratorSettings>> BuildSwaggerUiSettings(
      string uiRoute,
      Assembly targetWebAssembly,
      string apiName,
      string description,
      string team = null,
      string appDocumentationUrl = null)
    {
      if (!uiRoute.StartsWith("/"))
        uiRoute = string.Format("/{0}", (object) uiRoute);
      return (Action<SwaggerUi3Settings<WebApiToSwaggerGeneratorSettings>>) (settings =>
      {
        settings.SwaggerUiRoute = uiRoute;
        settings.SwaggerRoute = string.Format("{0}/swagger.json", (object) uiRoute);
        settings.DocExpansion = "list";
        settings.GeneratorSettings.Title = apiName;
        settings.GeneratorSettings.Version = string.Format("{0}", (object) targetWebAssembly.GetName().Version);
        settings.GeneratorSettings.Description = description;
        settings.GeneratorSettings.IgnoreObsoleteProperties = false;
        settings.GeneratorSettings.GenerateKnownTypes = true;
        settings.GeneratorSettings.GenerateAbstractProperties = true;
        settings.GeneratorSettings.DefaultEnumHandling = EnumHandling.String;
        settings.GeneratorSettings.OperationProcessors.Add((IOperationProcessor) new CallerHeaderOperationProcessor());
        
        settings.PostProcess = (Action<SwaggerDocument>) (x =>
        {
          x.Security = (ICollection<SwaggerSecurityRequirement>) new List<SwaggerSecurityRequirement>();
          x.Info.Contact = new SwaggerContact()
          {
            Name = team,
            Url = appDocumentationUrl
          };
        });
      });
    }

这很可能不会提供您所需的一切,但值得指出的是,该类包含
OperationsSorter
设置。

这很可能不会提供您所需的一切,但值得指出的是,该类包含
OperationsSorter
设置。

可能检查):>*Ricoster:您可以尝试重新排序规范中具有文档处理器或后处理的元素。>*塞巴门:怎么做?>*RicoSuter:在后处理中,您可以对文档的路径集合进行重新排序…可能需要检查):>*RicoSuter:您可以尝试使用文档处理器或后处理对规范中的元素进行重新排序。>*塞巴门:怎么做?>*RicoSuter:在后处理中,您对文档的路径集合重新排序。。。
 if (swaggerApiOptions != null)
                {
                    foreach (var swaggerApiConfig in swaggerApiOptions.Configurations)
                    {
                        appBuilder.UseSwaggerUi3(swaggerApiConfig.TargetWebAssembly, swaggerApiConfig.ConfigureUiSettings);
                    }
                }