Gee*_*ard 5 c# rest .net-core asp.net-core
我有一个 ASP.NET Core 6 Web API 项目。一些端点与名称由多个单词组成的控制器相关,因此按照 .NET 中的约定采用 PascalCase 格式。假设我有一个PackageGroupsController. 我希望它的路由而不是/package-groups默认路由/PackageGroups,并且我不想为每个控制器指定硬编码路由。我怎样才能使用全局配置或其他东西来实现这一点?
AddControllers允许您自定义使用的约定,您可以尝试使用那些与RouteTokenTransformerConvention. 就像是:
builder.Services.AddControllers(opts =>
opts.Conventions.Add(new RouteTokenTransformerConvention(new ToKebabParameterTransformer())));
public class ToKebabParameterTransformer : IOutboundParameterTransformer
{
public string TransformOutbound(object? value) => value != null
? Regex.Replace(value.ToString(), "([a-z])([A-Z])", "$1-$2").ToLower() // to kebab
: null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |