diff --git a/Directory.Build.props b/Directory.Build.props index ee845ed..eaf31f0 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,7 +2,7 @@ - 1.0.5.29 + 1.0.5.33 9.1.1 diff --git a/host/JiShe.IoT.HttpApi.Host/IoTHttpApiHostModule.Configure.cs b/host/JiShe.IoT.HttpApi.Host/IoTHttpApiHostModule.Configure.cs index db7ad4d..1931d5c 100644 --- a/host/JiShe.IoT.HttpApi.Host/IoTHttpApiHostModule.Configure.cs +++ b/host/JiShe.IoT.HttpApi.Host/IoTHttpApiHostModule.Configure.cs @@ -1,8 +1,12 @@ using Hangfire.Redis.StackExchange; using JiShe.ServicePro.Core; using JiShe.ServicePro.FreeRedisProvider; +using JiShe.ServicePro.SwaggerConfigs; using Medallion.Threading; using Medallion.Threading.Redis; +using Microsoft.AspNetCore.Mvc.ApiExplorer; +using Microsoft.CodeAnalysis; +using System.Reflection; using Volo.Abp.BlobStoring; using Volo.Abp.BlobStoring.FileSystem; @@ -150,9 +154,22 @@ public partial class IoTHttpApiHostModule // 文件下载类型 options.MapType(() => new OpenApiSchema() { Type = "file" }); - options.SwaggerDoc("AbpPro", - new OpenApiInfo { Title = "AbpPro API", Version = "v1" }); - options.DocInclusionPredicate((docName, description) => true); + //options.SwaggerDoc("AbpPro", + // new OpenApiInfo { Title = "AbpPro API", Version = "v1" }); + + var configuration = context.Services.GetConfiguration(); + var groupNames = EnumExtensions.GetStringKeyValueList(); + + groupNames.ForEach(group => + { + options.SwaggerDoc(group.Key, + new OpenApiInfo { Title = group.Value, Version = "v1"}); + }); + + options.DocInclusionPredicate((docName, description) => { + + return description.GroupName == docName; + }); options.EnableAnnotations(); // 启用注解 options.DocumentFilter(); options.SchemaFilter(); @@ -163,6 +180,18 @@ public partial class IoTHttpApiHostModule options.IncludeXmlComments(xml, true); } + // 加载 模块引入的xml注释 + // 加载所有xml注释,这里会导致swagger加载有点缓慢 + var modulePath = Path.Combine(AppContext.BaseDirectory, "moduleSwagger"); + if (Directory.Exists(modulePath)) + { + var xmlModulePaths = Directory.GetFiles(modulePath, "*.xml"); + foreach (var xml in xmlModulePaths) + { + options.IncludeXmlComments(xml, true); + } + } + options.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme, new OpenApiSecurityScheme() { diff --git a/host/JiShe.IoT.HttpApi.Host/IoTHttpApiHostModule.cs b/host/JiShe.IoT.HttpApi.Host/IoTHttpApiHostModule.cs index 18fdd13..cafdb9c 100644 --- a/host/JiShe.IoT.HttpApi.Host/IoTHttpApiHostModule.cs +++ b/host/JiShe.IoT.HttpApi.Host/IoTHttpApiHostModule.cs @@ -1,3 +1,5 @@ +using JiShe.ServicePro.SwaggerConfigs; +using System.Reflection; using Volo.Abp.BlobStoring.FileSystem; namespace JiShe.IoT @@ -70,7 +72,14 @@ namespace JiShe.IoT app.UseSwagger(); app.UseAbpSwaggerUI(options => { - options.SwaggerEndpoint("/swagger/AbpPro/swagger.json", "AbpPro API"); + var groupNames = EnumExtensions.GetStringKeyValueList(); + + groupNames.ForEach(attr => { + + options.SwaggerEndpoint($"/swagger/{attr.Key}/swagger.json", attr.Value); + }); + //options.SwaggerEndpoint("/swagger/AbpPro/swagger.json", "AbpPro API"); + options.DocExpansion(DocExpansion.None); options.DefaultModelsExpandDepth(-1); }); diff --git a/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj b/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj index e6de1b7..212d50f 100644 --- a/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj +++ b/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj @@ -66,4 +66,8 @@ + + + + diff --git a/host/JiShe.IoT.HttpApi.Host/Pages/Login.cshtml b/host/JiShe.IoT.HttpApi.Host/Pages/Login.cshtml index f67ff56..da3684e 100644 --- a/host/JiShe.IoT.HttpApi.Host/Pages/Login.cshtml +++ b/host/JiShe.IoT.HttpApi.Host/Pages/Login.cshtml @@ -19,11 +19,12 @@
@Html.AntiForgeryToken() 后台服务登录 +
- +
- +
diff --git a/src/JiShe.IoT.Application.Contracts/JiShe.IoT.Application.Contracts.csproj b/src/JiShe.IoT.Application.Contracts/JiShe.IoT.Application.Contracts.csproj index 79bbac3..91ada69 100644 --- a/src/JiShe.IoT.Application.Contracts/JiShe.IoT.Application.Contracts.csproj +++ b/src/JiShe.IoT.Application.Contracts/JiShe.IoT.Application.Contracts.csproj @@ -3,6 +3,8 @@ $(DotnetTargetFrameworkVersion) JiShe.IoT + $(NoWarn);1591;1570 + True diff --git a/src/JiShe.IoT.Application/IoTApplicationModule.cs b/src/JiShe.IoT.Application/IoTApplicationModule.cs index d86608b..384988c 100644 --- a/src/JiShe.IoT.Application/IoTApplicationModule.cs +++ b/src/JiShe.IoT.Application/IoTApplicationModule.cs @@ -41,7 +41,7 @@ namespace JiShe.IoT public override void PostConfigureServices(ServiceConfigurationContext context) { // ʱ - ConfigureBackgroundJob(context); + //ConfigureBackgroundJob(context); } private static void ConfigureBackgroundJob(ServiceConfigurationContext context) diff --git a/src/JiShe.IoT.Domain/JiShe.IoT.Domain.csproj b/src/JiShe.IoT.Domain/JiShe.IoT.Domain.csproj index a8de89e..cbe80a0 100644 --- a/src/JiShe.IoT.Domain/JiShe.IoT.Domain.csproj +++ b/src/JiShe.IoT.Domain/JiShe.IoT.Domain.csproj @@ -2,6 +2,8 @@ $(DotnetTargetFrameworkVersion) JiShe.IoT + $(NoWarn);1591;1570 + True