Add Swagger summaries for Fake.Rbac menu/org/role/permission APIs.
Cover the 29 RBAC endpoints that ship without XML comments so Swagger UI shows Chinese titles. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
6f436f795f
commit
c8d35a8ef5
@ -11,10 +11,13 @@ using Fake.FeiShu;
|
||||
using Fake.Security.Claims;
|
||||
using Fake.Serilog;
|
||||
using Microsoft.AspNetCore.HttpOverrides;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Oms.Application;
|
||||
using Oms.SqlSugarCore;
|
||||
using SimpleAdmin.Api.Auth;
|
||||
using SimpleAdmin.Api.Swagger;
|
||||
using SimpleAdmin.Api.WeChat;
|
||||
using Swashbuckle.AspNetCore.SwaggerGen;
|
||||
|
||||
namespace SimpleAdmin.Api;
|
||||
|
||||
@ -70,6 +73,11 @@ public class SimpleAdminApiModule : FakeModule
|
||||
|
||||
// 添加 Fake Swagger 支持
|
||||
services.AddFakeSwaggerGen(addSecurity: true);
|
||||
// Fake.Rbac 菜单/组织/权限/角色接口无 XML 注释,补全 summary
|
||||
services.Configure<SwaggerGenOptions>(options =>
|
||||
{
|
||||
options.OperationFilter<RbacSwaggerOperationFilter>();
|
||||
});
|
||||
|
||||
services.AddCors(options =>
|
||||
{
|
||||
|
||||
67
src/SimpleAdmin.Api/Swagger/RbacSwaggerOperationFilter.cs
Normal file
67
src/SimpleAdmin.Api/Swagger/RbacSwaggerOperationFilter.cs
Normal file
@ -0,0 +1,67 @@
|
||||
using Microsoft.OpenApi.Models;
|
||||
using Swashbuckle.AspNetCore.SwaggerGen;
|
||||
|
||||
namespace SimpleAdmin.Api.Swagger;
|
||||
|
||||
/// <summary>
|
||||
/// Fake.Rbac 包内菜单/组织/权限/角色接口缺少 XML 注释,在此补全 Swagger summary。
|
||||
/// </summary>
|
||||
public sealed class RbacSwaggerOperationFilter : IOperationFilter
|
||||
{
|
||||
private static readonly Dictionary<string, string> Summaries = new(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
["GET /rbac/menu/get"] = "按 Id 获取菜单详情。",
|
||||
["GET /rbac/menu/get-menu-tree"] = "获取菜单树。",
|
||||
["GET /rbac/menu/get-user-menus"] = "获取当前用户可见菜单。",
|
||||
["POST /rbac/menu/create"] = "创建菜单。",
|
||||
["PUT /rbac/menu/update"] = "更新菜单。",
|
||||
["PUT /rbac/menu/update-order"] = "更新菜单排序。",
|
||||
["DELETE /rbac/menu/delete"] = "删除菜单。",
|
||||
["POST /rbac/menu/move-menu"] = "移动菜单节点。",
|
||||
|
||||
["GET /rbac/organization/get"] = "按 Id 获取组织详情。",
|
||||
["GET /rbac/organization/get-list"] = "获取组织列表。",
|
||||
["GET /rbac/organization/get-tree"] = "获取组织树。",
|
||||
["POST /rbac/organization/create"] = "创建组织。",
|
||||
["PUT /rbac/organization/update"] = "更新组织。",
|
||||
["DELETE /rbac/organization/delete"] = "删除组织。",
|
||||
["POST /rbac/organization/move"] = "移动组织节点。",
|
||||
|
||||
["GET /rbac/permission/get-all-permissions"] = "获取全部权限列表。",
|
||||
["GET /rbac/permission/get-permission-tree"] = "获取权限树。",
|
||||
["POST /rbac/permission/check-permission"] = "校验单个权限。",
|
||||
["POST /rbac/permission/check-permissions"] = "批量校验权限。",
|
||||
|
||||
["GET /rbac/role/get"] = "按 Id 获取角色详情。",
|
||||
["GET /rbac/role/get-list"] = "分页获取角色列表。",
|
||||
["GET /rbac/role/get-all-roles"] = "获取全部角色。",
|
||||
["POST /rbac/role/create"] = "创建角色。",
|
||||
["PUT /rbac/role/update"] = "更新角色。",
|
||||
["DELETE /rbac/role/delete"] = "删除角色。",
|
||||
["POST /rbac/role/assign-permissions"] = "为角色分配权限。",
|
||||
["GET /rbac/role/get-role-permissions"] = "获取角色已分配权限。",
|
||||
["GET /rbac/role/get-role-users"] = "获取角色下用户列表。",
|
||||
["GET /rbac/role/get-role-user-count"] = "获取角色下用户数量。",
|
||||
};
|
||||
|
||||
public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(operation.Summary))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var path = context.ApiDescription.RelativePath?.Trim('/') ?? string.Empty;
|
||||
var method = context.ApiDescription.HttpMethod?.ToUpperInvariant() ?? string.Empty;
|
||||
if (string.IsNullOrWhiteSpace(path) || string.IsNullOrWhiteSpace(method))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var key = $"{method} /{path.TrimStart('/')}";
|
||||
if (Summaries.TryGetValue(key, out var summary))
|
||||
{
|
||||
operation.Summary = summary;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user