Compare commits

..
2 Commits
Author SHA1 Message Date
xrain cb89a1a003 doc only appear in current group 2025-11-01 18:40:51 +08:00
xrain 462bce50cc fix pack bug 2025-11-01 15:50:11 +08:00
3 changed files with 29 additions and 18 deletions
+11 -16
View File
@@ -6,22 +6,22 @@ namespace SimApi.Configurations;
/// <summary> /// <summary>
/// 文档组配置 /// 文档组配置
/// </summary> /// </summary>
public class SimApiDocGroupOption public class SimApiDocGroupOption(string id, string name, string description = "")
{ {
/// <summary> /// <summary>
/// 文档标识 /// 文档标识
/// </summary> /// </summary>
public string Id { get; set; } = null!; public string Id { get; set; } = id;
/// <summary> /// <summary>
/// 文档名称 /// 文档名称
/// </summary> /// </summary>
public string Name { get; set; } = null!; public string Name { get; set; } = name;
/// <summary> /// <summary>
/// 文档描述 /// 文档描述
/// </summary> /// </summary>
public string Description { get; set; } = null!; public string Description { get; set; } = description!;
} }
/// <summary> /// <summary>
@@ -29,7 +29,7 @@ public class SimApiDocGroupOption
/// </summary> /// </summary>
public class SimApiAuthOption public class SimApiAuthOption
{ {
public string[] Type { get; set; } = new[] { "SimApiAuth" }; public string[] Type { get; set; } = ["SimApiAuth"];
public string Description { get; set; } = "认证服务器颁发的AccessToken"; public string Description { get; set; } = "认证服务器颁发的AccessToken";
@@ -48,20 +48,15 @@ public class SimApiDocOptions
/// <summary> /// <summary>
/// 文档组配置 /// 文档组配置
/// </summary> /// </summary>
public SimApiDocGroupOption[] ApiGroups { get; set; } = new[] public SimApiDocGroupOption[] ApiGroups { get; set; } =
{ [
new SimApiDocGroupOption new("api", "Api", "Api接口文档")
{ ];
Id = "api",
Name = "Api",
Description = "Api接口文档"
}
};
/// <summary> /// <summary>
/// 授权配置 /// 授权配置
/// </summary> /// </summary>
public SimApiAuthOption ApiAuth { get; set; } = new SimApiAuthOption(); public SimApiAuthOption ApiAuth { get; set; } = new();
/// <summary> /// <summary>
/// 文档页面标题 /// 文档页面标题
@@ -71,5 +66,5 @@ public class SimApiDocOptions
/// <summary> /// <summary>
/// 接口支持的调用方式 /// 接口支持的调用方式
/// </summary> /// </summary>
public SubmitMethod[] SupportedMethod { get; set; } = new[] { SubmitMethod.Post }; public SubmitMethod[] SupportedMethod { get; set; } = [SubmitMethod.Post];
} }
+2 -2
View File
@@ -3,20 +3,20 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<PackOnBuild>true</PackOnBuild> <PackOnBuild>true</PackOnBuild>
<IsPackable>true</IsPackable>
<Version>0.0.0</Version> <Version>0.0.0</Version>
<Authors>xRain@SimcuTeam</Authors> <Authors>xRain@SimcuTeam</Authors>
<Description>AspNetCore一个方便的API文档,捕获异常,统一输入输出的API类库</Description> <Description>AspNetCore一个方便的API文档,捕获异常,统一输入输出的API类库</Description>
<PackageId>Simcu.SimApi</PackageId> <PackageId>Simcu.SimApi</PackageId>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks> <TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Communications\"/> <Folder Include="Communications\"/>
<Folder Include="Exceptions\"/> <Folder Include="Exceptions\"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Hangfire.AspNetCore" Version="1.8.21" /> <PackageReference Include="Hangfire.AspNetCore" Version="1.8.21" />
<PackageReference Include="Hangfire.Console" Version="1.4.3"/> <PackageReference Include="Hangfire.Console" Version="1.4.3"/>
<PackageReference Include="Hangfire.Redis.StackExchange" Version="1.12.0"/> <PackageReference Include="Hangfire.Redis.StackExchange" Version="1.12.0"/>
+16
View File
@@ -12,6 +12,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.OpenApi.Models; using Microsoft.OpenApi.Models;
using SimApi.Middlewares; using SimApi.Middlewares;
using Microsoft.AspNetCore.HttpOverrides; using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using SimApi.Attributes; using SimApi.Attributes;
@@ -128,6 +129,21 @@ public static class SimApiExtensions
x.OperationFilter<SimApiAuthOperationFilter>(); x.OperationFilter<SimApiAuthOperationFilter>();
} }
x.DocInclusionPredicate((docName, apiDesc) =>
{
// 获取接口标记的 GroupName(未标记则为 null
var actionGroupName = apiDesc.ActionDescriptor.EndpointMetadata
.OfType<ApiExplorerSettingsAttribute>()
.FirstOrDefault()?.GroupName;
// 情况1:接口未标记任何 GroupNameactionGroupName 为 null
if (actionGroupName == null)
{
return docName == "api"; // 未分组接口只属于默认分组v1
}
return docName == actionGroupName;
});
x.EnableAnnotations(); x.EnableAnnotations();
var haveOauth = false; var haveOauth = false;
var oauthFlows = new OpenApiOAuthFlows(); var oauthFlows = new OpenApiOAuthFlows();