小编Box*_*xed的帖子

API 版本控制 - 如果模型发生变化我该怎么办

我对 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)

c# api swagger asp.net-core

4
推荐指数
1
解决办法
3948
查看次数

标签 统计

api ×1

asp.net-core ×1

c# ×1

swagger ×1