有一个关于 Web Api 2.0 版本控制的快速问题。
我开发了一个完全 RESTful API,但是我有 2 个同名的控制器。
我已根据单独的文件夹将它们放入不同的命名空间中。
(例如 v1 和 v2 文件夹)。
我还使用正常的 NamespaceHttpControllerSelector 配置了正确的路由。
所以到目前为止一切都工作正常。
但是我有一个问题...是否可以仍然有版本控制对于电子邮件控制器即使我把EmailsController 在根级别?
E.g.
控制器/v1/EmailControllers
控制器/电子邮件控制器
这还有可能吗?
Edit:
我忘了说我没有使用过RoutePrefix
属性,因为我不断收到错误RouteConstraint
.
我用以下内容装饰了我的操作方法(这似乎有点多余,因为它们本质上具有相同的命名空间):
[Route("api/{apiVersion1:ApiVersion1Constraint(v1)}/emails/LogEmails", Name = "LogEmailsRoute_1")]
您是否尝试过使用 [ApiVersion] 属性
[ApiVersion( "1.0", Deprecated = true )]
[ApiVersion( "2.0" )]
[ApiVersion( "3.0" )]
[Route( "api/v{version:apiVersion}/email" )]
public class Email2Controller : Controller {
[HttpGet]
public string Get() => "Email v2!";
[HttpGet, MapToApiVersion( "3.0" )]
public string GetV3() => "Email v3!";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)