gpt4 book ai didi

c# - webapi 2.2所有属性路由添加任意路由前缀

转载 作者:行者123 更新时间:2023-11-30 16:57:33 31 4
gpt4 key购买 nike

有人在 Web Api 2 global route prefix for route attributes? 询问过这个问题.

我已经在使用属性路由和类级路由前缀。但是,从某种配置(可能是代码)我想为所有属性路由添加另一个前缀。我不想创建要在整个代码库中使用的自定义路由属性,而只想创建内置的。

这可能吗?

简单地说,我想走我的路线/a/1/b/2和/x/3/y/2/z/1并将它们转入(尽管它不一定需要是/api 前缀)/api/1/b/2和/api/x/3/y/2/z/1

最佳答案

选项 1

您可以创建一个所有其他 Controller 都继承自的抽象基 Controller 类,并将 RoutePrefix 属性应用于该类。例如:

[RoutePrefix("/api")
public abstract class BaseController : ApiController
{
}

然后我的普通 Controller 看起来像这样:

public class ValuesController : BaseController
{
[Route("/get/value")]
public string GetValue()
{
return "hello";
}
}

选项 2

次要选项是使用 reverse proxy这将透明地将所有传入请求路由到正确的 URL。您可以使用重写规则设置代理,例如“任何匹配 /api/* 的请求,重定向到 internalserver/*”。您可以使用 ARR IIS 可以做到这一点,而且它是免费的。我过去使用过它,它在这种情况下效果很好。

关于c# - webapi 2.2所有属性路由添加任意路由前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26347571/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com