C# Restful版本控制-如何在版本控制中设置版本以及如何部署?
如果我要在.NET中创建一个版本化的RESTful API(这与我版本化的方式无关,但为了便于讨论,让我们假设我正在使用API/v1/users)——我感兴趣的是人们在版本控制和代码方面如何处理这个问题。在我的情况下,它是一个私有API,但是它将被iOS应用程序使用,所以我不能保证所有客户端都会同时升级,所以我必须让旧API运行一段时间 假设我决定在用户返回的数据中实现一个突破性的更改,那么我创建了一个v2的api-api/v2/Users。我是否在GIT中进行这些更改,例如,为V2创建一个新分支,然后在工作副本上进行这些更改,然后分别构建每个分支并将每个分支项目部署到V2文件夹 比如: Git分支:C# Restful版本控制-如何在版本控制中设置版本以及如何部署?,c#,git,rest,jenkins,versioning,C#,Git,Rest,Jenkins,Versioning,如果我要在.NET中创建一个版本化的RESTful API(这与我版本化的方式无关,但为了便于讨论,让我们假设我正在使用API/v1/users)——我感兴趣的是人们在版本控制和代码方面如何处理这个问题。在我的情况下,它是一个私有API,但是它将被iOS应用程序使用,所以我不能保证所有客户端都会同时升级,所以我必须让旧API运行一段时间 假设我决定在用户返回的数据中实现一个突破性的更改,那么我创建了一个v2的api-api/v2/Users。我是否在GIT中进行这些更改,例如,为V2创建一个新分
MASTER ====v1========================v2==========================
\ \ \
\ \ BRANCH V2 =================
BRANCH V1 ===========================================
\ /
BRANCH V1 Bug Fix ===
显然,这带来了一种开销,即在创建Jenkins时必须将每个分支添加到Jenkins,然后在AWS上更新部署过程,以便在正确的位置安装相关的WebDeploy包。在这种情况下,MASTER也不是持续可交付的,它将是Dev,持续可交付的版本将是分支
或者人们只是使用不同版本的项目,例如v1/Users.cs v2/Users.cs,使用不同的名称空间,然后处理路由到的代码
后者处理起来要简单得多,因为在任何一点上只有一个项目要部署到前端。然而,我觉得它很混乱,并且超出了代码版本控制的核心价值
对于REST版本控制,我已经看到了很多关于URL命名与标题命名等的讨论,但是对于人们如何在代码库中实现版本控制以及版本控制,什么都没有
谢谢各位在我看来,您有两个选择:
- Fork v1并为v2创建一个单独的项目。在这种情况下,您可以复制粘贴错误修复,或者可以通过拉请求共享修复
- 为v1和v2创建单独的发布分支,这样您就可以将错误修复合并到这两个版本中
MASTER ====v1========================v2==========================
\ \ \
\ \ BRANCH V2 =================
BRANCH V1 ===========================================
\ /
BRANCH V1 Bug Fix ===