我对 API 和版本控制相当陌生,但据我了解,如果 API 出现违反合同的变更,开发人员(即我)应该保留代码。如果我错了,请纠正我,但我认为模型变更是违反合同的变更。
所以我的问题是 - 您是否只是为了版本控制而创建新模型(例如 ModelName.V2)?有一个更好的方法吗?这意味着即使我的模型中的属性发生轻微变化,我也会将其迭代到另一个版本。
ps,如果我需要编辑我的问题,请告诉我,因为我对 StackOverflow 也相当陌生。
样本
public class Product
{
public int ID {get;set;}
public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
和随附的控制器
[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/[controller]/[action]")]
public class Products : Controller
{
Product[] prod = new Product[]{
new Product(){ID = 1, Name = "T-Shirt"},
new Product(){ID = 2, Name = "Jeans"}
};
[HttpGet]
[ActionName("gotcha")]
public IActionResult GetProduct()
{
return Ok(prod);
}
}
Run Code Online (Sandbox Code Playgroud)
对于 V2 控制器
[ApiVersion("2.0")]
[Route("api/v{version:apiVersion}/[controller]/[action]")]
public class V2.Products : Controller
{
[HttpGet]
[ActionName("gotcha")]
public IActionResult …Run Code Online (Sandbox Code Playgroud)