Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Modules/Routing/RoutePrefixResolver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public static IEndpointRouteBuilder Resolve(IApiPlugin plugin, IConfiguration co

// 默认使用插件名称作为路由前缀
string routePrefix = plugin.Name;
bool isOverridden = false;

// 检查是否存在路由前缀覆盖配置
var overrideRoute = configuration.GetValue<string>($"RouteOverride:{plugin.Name}");
Expand All @@ -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
Expand All @@ -46,6 +48,9 @@ public static IEndpointRouteBuilder Resolve(IApiPlugin plugin, IConfiguration co
}
}

// 通知插件最终解析到的路由前缀
plugin.OnRoutePrefixResolved(routePrefix, isOverridden);

// 返回带有前缀的路由组
return app.MapGroup($"/{routePrefix.TrimStart('/')}");
}
Expand Down
Loading