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