C# 如何在web api中进行版本控制时管理代码库?

C# 如何在web api中进行版本控制时管理代码库?,c#,rest,asp.net-web-api2,api-versioning,C#,Rest,Asp.net Web Api2,Api Versioning,我需要公开一个新版本的API方法,因为我不能承受对现有方法的破坏性更改 现有:{id} 新:{id} 我读过关于版本控制和应用策略的不同方法。 我需要知道的是: 1) 如何在应用版本控制时管理代码库 2) 是否必须在所有版本中包含所有API 我正在使用ASP.NET web API,目前的版本中有100多个端点,我希望避免代码重复,并找到保持代码可管理性的最佳方法 任何帮助都是值得的。这取决于端点的实际设置方式,但符号链接/快捷方式是避免复制文件或Web服务器主机配置的潜在途径。至于2),您是指

我需要公开一个新版本的API方法,因为我不能承受对现有方法的破坏性更改

现有:{id}

新:{id}

我读过关于版本控制和应用策略的不同方法。 我需要知道的是:

1) 如何在应用版本控制时管理代码库

2) 是否必须在所有版本中包含所有API

我正在使用ASP.NET web API,目前的版本中有100多个端点,我希望避免代码重复,并找到保持代码可管理性的最佳方法


任何帮助都是值得的。

这取决于端点的实际设置方式,但符号链接/快捷方式是避免复制文件或Web服务器主机配置的潜在途径。至于2),您是指版本2中只有新的/更改的版本吗?这还取决于API是否有目录。例如,其中
http://www.test.com/api/v2/
列出所有可用的端点和可选的使用信息。如果是这样的话,复制v1中的所有内容就不那么必要了-目录可以列出v1端点。@Luke你能详细说明一下你提到的“符号链接/快捷方式”吗?至于2),我想问一下这样做的最佳实践/标准方法。例如,如果
api/v2/customer/
是一个目录,您可以创建一个符号链接(其作用类似于一种特殊的快捷方式),以便
api/v1/customer/
指向同一位置。应用于所有其他未更改的端点。请注意,这是向后进行的-实际文件存在于最新版本的API中。至于最佳实践,您的API是否有可用端点的目录,如?如果你这样做的话,版本号本身实际上只适用于目录本身——API不能保证URL在任何方面都是一致的。此外,值得注意的是,该示例松散地适用于更广泛的类别是“自文档化API”。哪一个更适合自我记录类别。对这些目录进行版本控制只是发布新端点目录的一个例子。