2
我刚开始进入WebApi
,我想了解的是如果您可以有1个控制器可以处理多个版本。WebApi版本化单个控制器
因此而不必在那里V2拥有控制器的副本V1,但V2的逻辑是从V1
不同v1
/v2
文件夹,你可以有1个控制器,它究竟会处理所有版本的API?
我见过参考[APiVersion(...)]
属性的控制器上,但是当我试图实现我的想法是对的什么被称为
例子:
[ApiVersion("1.0")]
[ApiVersion("2.0")]
[Route("api/v{version:apiVersion}/login")]
public class LoginController : ApiController
{
[HttpGet]
[MapToApiVersion("1.0")]
[Route("login/{username}/{password}")]
[ResponseType(typeof(LoginResult))]
public LoginResult GetLoginInfo(string username, string password)
{
//v1 logic
}
[HttpGet]
[MapToApiVersion("2.0")]
[Route("login/{username}/{password}")]
[ResponseType(typeof(LoginResult))]
public LoginResult GetLoginInfo2(string username, string password)
{
//v2 logic
}
}
我用这个answer作为参考,但它似乎没有工作。正在用行动来解决这个问题吗?
理想我只想能够在任何地方更改版本号,它被调用,而不是改变动作的名称,但我不知道这是可能的