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('/')}"); }