REST API:多个版本,单个应用程序?[已关闭]
我正在开发一个 REST API,我将不得不很快引入一些重大更改,因此需要一个 v2。我们仍然需要同时支持 v1 几个月,以便让我们的客户有时间在准备就绪时切换到新的 API。我们的API通过共享云提供,我们所有的客户共享相同的系统后端,特别是单个共享数据库。
我发现很多关于REST API版本控制的文章,但它们都更多地是从客户的角度出发,或者从高级设计的角度来看的。这不是我真正关心的问题,我们的API已经在URI中进行了版本控制,因此提供具有/v2基本路径的服务不会是aploblem。
然而,我问自己,我将如何实际实现这一点,我还没有找到关于这一点的好文章。我真的不想分支我的项目的v2,然后构建和部署v1和v2作为单独的应用程序,因为这样我会在两个应用程序中进行维护,错误修复,配置更改等,这是双重工作并且带有冗余的常见危险(即:版本之间可能存在的不一致)。此外,v2当然在每个服务中都没有不同,因此大多数代码仍然是相同的。
对于如何在单个应用程序中从技术上实现 REST API,该应用程序向外部提供多个版本,并且共享一些代码(即:v2 / someService 将在内部重定向到 v1 / someService),并且仅在新服务中编码实际差异,是否有任何最佳实践?也许甚至有框架可以帮助设计这个?该应用程序是用Java和Spring MVC编码的,如果这有帮助的话。
我非常感谢有关如何解决此问题的任何提示或资源。谢谢!