Bläddra i källkod

优化swagger实体类型命名

zhontai 2 år sedan
förälder
incheckning
ee343af836

+ 24 - 1
src/platform/ZhonTai.Admin/Core/HostApp.cs

@@ -54,6 +54,9 @@ using ZhonTai.DynamicApi.Attributes;
 
 namespace ZhonTai.Admin.Core;
 
+/// <summary>
+/// 宿主应用
+/// </summary>
 public class HostApp
 {
     readonly HostAppOptions _hostAppOptions;
@@ -67,6 +70,10 @@ public class HostApp
         _hostAppOptions = hostAppOptions;
     }
 
+    /// <summary>
+    /// 运行应用
+    /// </summary>
+    /// <param name="args"></param>
     public void Run(string[] args)
     {
         var builder = WebApplication.CreateBuilder(args);
@@ -135,6 +142,22 @@ public class HostApp
         app.Run();
     }
 
+    /// <summary>
+    /// 实体类型重命名
+    /// </summary>
+    /// <param name="modelType"></param>
+    /// <returns></returns>
+    private string DefaultSchemaIdSelector(Type modelType)
+    {
+        if (!modelType.IsConstructedGenericType) return modelType.Name.Replace("[]", "Array");
+
+        var prefix = modelType.GetGenericArguments()
+            .Select(DefaultSchemaIdSelector)
+            .Aggregate((previous, current) => previous + current);
+
+        return modelType.Name.Split('`').First() + prefix;
+    }
+
     /// <summary>
     /// 配置服务
     /// </summary>
@@ -310,7 +333,7 @@ public class HostApp
                 });
 
                 options.ResolveConflictingActions(apiDescription => apiDescription.First());
-                //options.CustomSchemaIds(x => x.FullName);
+                options.CustomSchemaIds(modelType => DefaultSchemaIdSelector(modelType));
 
                 //支持多分组
                 options.DocInclusionPredicate((docName, apiDescription) =>

+ 1 - 1
src/platform/ZhonTai.Admin/Core/Startup/HostAppOptions.cs

@@ -6,7 +6,7 @@ using ZhonTai.DynamicApi;
 namespace ZhonTai.Admin.Core.Startup;
 
 /// <summary>
-/// HostApp配置
+/// 宿主应用配置
 /// </summary>
 public class HostAppOptions
 {

+ 2 - 2
src/platform/ZhonTai.Admin/ZhonTai.Admin.csproj

@@ -13,8 +13,8 @@
 		<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
 		<PackageReference Include="Autofac.Extras.DynamicProxy" Version="6.0.1" />
 		<PackageReference Include="Castle.Core.AsyncInterceptor" Version="2.1.0" />
-		<PackageReference Include="CSRedisCore" Version="3.8.669" />
-		<PackageReference Include="Caching.CSRedis" Version="3.8.669" />
+		<PackageReference Include="CSRedisCore" Version="3.8.670" />
+		<PackageReference Include="Caching.CSRedis" Version="3.8.670" />
 		<PackageReference Include="FluentValidation.AspNetCore" Version="11.2.2" />
 		<PackageReference Include="FreeSql" Version="3.2.682" />
 		<PackageReference Include="FreeSql.Cloud" Version="1.6.3" />

+ 12 - 1
src/platform/ZhonTai.Admin/ZhonTai.Admin.xml

@@ -1548,6 +1548,17 @@
             <param name="cancellationToken"></param>
             <returns></returns>
         </member>
+        <member name="T:ZhonTai.Admin.Core.HostApp">
+            <summary>
+            宿主应用
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Admin.Core.HostApp.Run(System.String[])">
+            <summary>
+            运行应用
+            </summary>
+            <param name="args"></param>
+        </member>
         <member name="M:ZhonTai.Admin.Core.HostApp.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,Microsoft.Extensions.Configuration.IConfiguration,ZhonTai.Common.Helpers.ConfigHelper,ZhonTai.Admin.Core.Configs.AppConfig)">
             <summary>
             配置服务
@@ -1730,7 +1741,7 @@
         </member>
         <member name="T:ZhonTai.Admin.Core.Startup.HostAppOptions">
             <summary>
-            HostApp配置
+            宿主应用配置
             </summary>
         </member>
         <member name="P:ZhonTai.Admin.Core.Startup.HostAppOptions.ConfigurePreServices">