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作爲參考,但它似乎沒有工作。正在用行動來解決這個問題嗎?
理想我只想能夠在任何地方更改版本號,它被調用,而不是改變動作的名稱,但我不知道這是可能的