From 060a73c9d13f6785474594307cb9fa2ca67f501e Mon Sep 17 00:00:00 2001 From: Alone <2364698494@qq.com> Date: Sat, 21 Aug 2021 00:58:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8E=9F=E6=9C=AC?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E7=9A=84EnumSchemaFilter=20=E5=8E=9F?= =?UTF-8?q?=E6=9C=AC=E7=9A=84=20=E5=A4=87=E6=B3=A8=20=E5=90=8D=E7=A7=B0=3D?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=20=E5=B9=B6=E4=B8=8D=E8=83=BD=E6=B8=85?= =?UTF-8?q?=E6=99=B0=E7=9C=8B=E6=B8=85=E6=98=A0=E5=B0=84=20=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=20=E5=A4=87=E6=B3=A8=20=E5=90=8D=E7=A7=B0=3D?= =?UTF-8?q?=E5=80=BC=20=E6=9B=B4=E6=94=B9Swagger=E7=9A=84=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=B3=A8=E5=85=A5SchemaFilter=E5=92=8CDocumentFilter?= =?UTF-8?q?=20=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=8E=BB=E9=99=A4=E9=BB=98=E8=AE=A4=E7=9A=84?= =?UTF-8?q?=E6=8B=A6=E6=88=AA=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- framework/Furion/App/Options/AppSettingsOptions.cs | 14 ++++++++++++++ .../Builders/SpecificationDocumentBuilder.cs | 6 ++++-- .../Filters/EnumSchemaFilter.cs | 5 +++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/framework/Furion/App/Options/AppSettingsOptions.cs b/framework/Furion/App/Options/AppSettingsOptions.cs index e4ba8f57c0..dfbeeffcd6 100644 --- a/framework/Furion/App/Options/AppSettingsOptions.cs +++ b/framework/Furion/App/Options/AppSettingsOptions.cs @@ -28,6 +28,16 @@ namespace Furion /// public bool? InjectSpecificationDocument { get; set; } + /// + /// 是否启用默认Swagger枚举说明 + /// + public bool? InjectEnumSchemaFilter { get; set; } + + /// + /// 是否启用默认Swagger枚举说明 + /// + public bool? InjectTagsOrderDocumentFilter { get; set; } + /// /// 是否启用引用程序集扫描 /// @@ -71,6 +81,10 @@ namespace Furion else options.InjectMiniProfiler ??= true; options.InjectSpecificationDocument ??= true; + + options.InjectEnumSchemaFilter ??= true; + options.InjectTagsOrderDocumentFilter ??= true; + options.EnabledReferenceAssemblyScan ??= false; options.ExternalAssemblies ??= Array.Empty(); options.PrintDbConnectionInfo ??= true; diff --git a/framework/Furion/SpecificationDocument/Builders/SpecificationDocumentBuilder.cs b/framework/Furion/SpecificationDocument/Builders/SpecificationDocumentBuilder.cs index 4a78c000d5..1361b27528 100644 --- a/framework/Furion/SpecificationDocument/Builders/SpecificationDocumentBuilder.cs +++ b/framework/Furion/SpecificationDocument/Builders/SpecificationDocumentBuilder.cs @@ -157,10 +157,12 @@ namespace Furion.SpecificationDocument ConfigureSecurities(swaggerGenOptions); //使得 Swagger 能够正确地显示 Enum 的对应关系 - swaggerGenOptions.SchemaFilter(); + if (App.Settings.InjectEnumSchemaFilter == true) + swaggerGenOptions.SchemaFilter(); // 支持控制器排序操作 - swaggerGenOptions.DocumentFilter(); + if (App.Settings.InjectTagsOrderDocumentFilter == true) + swaggerGenOptions.DocumentFilter(); // 自定义配置 configure?.Invoke(swaggerGenOptions); diff --git a/framework/Furion/SpecificationDocument/Filters/EnumSchemaFilter.cs b/framework/Furion/SpecificationDocument/Filters/EnumSchemaFilter.cs index c9d1f5aa8f..55744aaef9 100644 --- a/framework/Furion/SpecificationDocument/Filters/EnumSchemaFilter.cs +++ b/framework/Furion/SpecificationDocument/Filters/EnumSchemaFilter.cs @@ -61,8 +61,9 @@ namespace Furion.SpecificationDocument var fieldinfo = type.GetField(Enum.GetName(type, value)); var descriptionAttribute = fieldinfo.GetCustomAttribute(true); model.Enum.Add(OpenApiAnyFactory.CreateFromJson(_serializerProvider.Serialize(value))); - - stringBuilder.Append($" {descriptionAttribute?.Description} {value} = {value}
"); + //更改枚举显示 + //描述 名称 = 值 + stringBuilder.Append($" {descriptionAttribute?.Description} {value} = {Convert.ToInt32(value)}
"); } model.Description = stringBuilder.ToString(); } -- Gitee From 47a98bea095ed697e12c7e5d3426dee20cbd3699 Mon Sep 17 00:00:00 2001 From: Alone <2364698494@qq.com> Date: Sat, 21 Aug 2021 01:16:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A4=87=E6=B3=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- framework/Furion/App/Options/AppSettingsOptions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/Furion/App/Options/AppSettingsOptions.cs b/framework/Furion/App/Options/AppSettingsOptions.cs index dfbeeffcd6..1046158a33 100644 --- a/framework/Furion/App/Options/AppSettingsOptions.cs +++ b/framework/Furion/App/Options/AppSettingsOptions.cs @@ -34,7 +34,7 @@ namespace Furion public bool? InjectEnumSchemaFilter { get; set; } /// - /// 是否启用默认Swagger枚举说明 + /// 是否启用默认Swagger标签文档排序拦截器 /// public bool? InjectTagsOrderDocumentFilter { get; set; } -- Gitee