【发布时间】:2023-04-10 17:58:01
【问题描述】:
想象一下,您使用标准 Spring Boot 软件堆栈中的数据库创建了一个简单的单体 REST 后端。您无法控制的任意客户端使用您的 REST 端点。数据库运行在 Docker 容器中,后端运行在单独的 Docker 容器中。
您如何处理对现有功能进行重大更改的更新?当现有数据模型(和数据库架构)发生更改并因此 DTO 或现有 REST 端点的预期调用格式发生更改时,您会怎么做?
在一个正在积极开发的项目中,这似乎是可以预期的,同时它还在生产使用中。但既然你已经推出了一个版本,你必须支持它(至少支持一段时间)。您是否以某种方式对端点进行版本控制?如果是这样,它是如何完成的?您是否保持应用程序的多个实例(每个版本至少一个)运行,并以某种方式希望它们都能正确访问数据库?但是,每个版本仍应使用相同的数据库。
对此是否有任何最佳实践,或者我是否在编造一个不存在的问题?
【问题讨论】:
标签: java spring-boot rest architecture software-design