Compare commits

...
1 Commits
Author SHA1 Message Date
xrain cb89a1a003 doc only appear in current group 2025-11-01 18:40:51 +08:00
2 changed files with 27 additions and 16 deletions
+11 -16
View File
@@ -6,22 +6,22 @@ namespace SimApi.Configurations;
/// <summary>
/// 文档组配置
/// </summary>
public class SimApiDocGroupOption
public class SimApiDocGroupOption(string id, string name, string description = "")
{
/// <summary>
/// 文档标识
/// </summary>
public string Id { get; set; } = null!;
public string Id { get; set; } = id;
/// <summary>
/// 文档名称
/// </summary>
public string Name { get; set; } = null!;
public string Name { get; set; } = name;
/// <summary>
/// 文档描述
/// </summary>
public string Description { get; set; } = null!;
public string Description { get; set; } = description!;
}
/// <summary>
@@ -29,7 +29,7 @@ public class SimApiDocGroupOption
/// </summary>
public class SimApiAuthOption
{
public string[] Type { get; set; } = new[] { "SimApiAuth" };
public string[] Type { get; set; } = ["SimApiAuth"];
public string Description { get; set; } = "认证服务器颁发的AccessToken";
@@ -48,20 +48,15 @@ public class SimApiDocOptions
/// <summary>
/// 文档组配置
/// </summary>
public SimApiDocGroupOption[] ApiGroups { get; set; } = new[]
{
new SimApiDocGroupOption
{
Id = "api",
Name = "Api",
Description = "Api接口文档"
}
};
public SimApiDocGroupOption[] ApiGroups { get; set; } =
[
new("api", "Api", "Api接口文档")
];
/// <summary>
/// 授权配置
/// </summary>
public SimApiAuthOption ApiAuth { get; set; } = new SimApiAuthOption();
public SimApiAuthOption ApiAuth { get; set; } = new();
/// <summary>
/// 文档页面标题
@@ -71,5 +66,5 @@ public class SimApiDocOptions
/// <summary>
/// 接口支持的调用方式
/// </summary>
public SubmitMethod[] SupportedMethod { get; set; } = new[] { SubmitMethod.Post };
public SubmitMethod[] SupportedMethod { get; set; } = [SubmitMethod.Post];
}
+16
View File
@@ -12,6 +12,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.OpenApi.Models;
using SimApi.Middlewares;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using SimApi.Attributes;
@@ -128,6 +129,21 @@ public static class SimApiExtensions
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();
var haveOauth = false;
var oauthFlows = new OpenApiOAuthFlows();