using NCC; using NCC.Dependency; using NCC.SpecificationDocument; using System; namespace Microsoft.AspNetCore.Builder { /// /// 规范化文档中间件拓展 /// [SuppressSniffer] public static class SpecificationDocumentApplicationBuilderExtensions { /// /// 添加规范化文档中间件 /// /// /// /// /// public static IApplicationBuilder UseSpecificationDocuments(this IApplicationBuilder app, string routePrefix = default, Action configure = default) { // 判断是否启用规范化文档 if (App.Settings.InjectSpecificationDocument != true) return app; // 载入服务配置选项 var configureOptions = new SpecificationDocumentConfigureOptions(); configure?.Invoke(configureOptions); // 配置 Swagger 全局参数 app.UseSwagger(options => SpecificationDocumentBuilder.Build(options, configureOptions?.SwaggerConfigure)); // 配置 Swagger UI 参数 app.UseSwaggerUI(options => SpecificationDocumentBuilder.BuildUI(options, routePrefix, configureOptions?.SwaggerUIConfigure)); // 启用 MiniProfiler组件 if (App.Settings.InjectMiniProfiler == true) app.UseMiniProfiler(); return app; } } }