From e46c21e62bd36510699d2e057d2ed8f9546d5c5c Mon Sep 17 00:00:00 2001 From: sharworange Date: Wed, 4 Mar 2026 16:41:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0OnRoutePrefixResolved?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BE=9B=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E6=9F=A5=E8=AF=A2=E8=B7=AF=E7=94=B1=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Modules/Routing/RoutePrefixResolver.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Modules/Routing/RoutePrefixResolver.cs b/Modules/Routing/RoutePrefixResolver.cs index 0895141..c7fd3e9 100644 --- a/Modules/Routing/RoutePrefixResolver.cs +++ b/Modules/Routing/RoutePrefixResolver.cs @@ -28,6 +28,7 @@ public static IEndpointRouteBuilder Resolve(IApiPlugin plugin, IConfiguration co // 默认使用插件名称作为路由前缀 string routePrefix = plugin.Name; + bool isOverridden = false; // 检查是否存在路由前缀覆盖配置 var overrideRoute = configuration.GetValue($"RouteOverride:{plugin.Name}"); @@ -37,6 +38,7 @@ public static IEndpointRouteBuilder Resolve(IApiPlugin plugin, IConfiguration co if (System.Text.RegularExpressions.Regex.IsMatch(overrideRoute, "^[a-zA-Z0-9]+$")) { routePrefix = overrideRoute; + isOverridden = true; app.Logger.LogInformation("Route prefix for plugin '{PluginName}' overridden to '{RoutePrefix}'", plugin.Name, routePrefix); } else @@ -46,6 +48,9 @@ public static IEndpointRouteBuilder Resolve(IApiPlugin plugin, IConfiguration co } } + // 通知插件最终解析到的路由前缀 + plugin.OnRoutePrefixResolved(routePrefix, isOverridden); + // 返回带有前缀的路由组 return app.MapGroup($"/{routePrefix.TrimStart('/')}"); }