我正在编写Rest API,并且想知道如何最好地处理对不同版本的支持。这样,我不是要如何将URI定义为V2或V3,而是要根据需要构造代码:
- 同时支持多个版本,例如。V1&V2&V3 URI必须同时存在。当说V4来限制任何时候的支持量时,我将退出V1。
- 避免尽可能多的代码重复
- 轻松向一个版本添加不间断的更改,而不会影响其他版本
似乎可以采取的方法很少:
使用Git来控制版本,并为不同的版本提供分支(旧版本基本上不需要进行新的开发工作)。这将意味着没有代码重复,因为代码中只有最新版本,但是以前的版本将需要与DB的新版本一起使用,直到淘汰。
复制代码,以便每个版本都在同一应用程序中处理,并且具有完全独立的代码路径,但这将意味着大量重复
在各个版本中重复使用大量代码,但这将使维护变得困难,因为更改一个版本更可能影响先前版本
所有选项似乎都有自己的问题,是否有最佳实践来解决此问题?