【发布时间】:2021-11-26 17:29:46
【问题描述】:
我的应用程序基于一些 api,它有多个版本。例如
- v1:用户(姓名:字符串,姓:字符串)
- v2:用户(名称:字符串,姓:字符串,中间名:字符串) 有没有比为每个版本创建另一个 POJO 类并创建另一组控制器、服务等更好的解决方案?
谁能告诉我我应该寻找什么?
【问题讨论】:
标签: spring-boot architecture software-design
我的应用程序基于一些 api,它有多个版本。例如
谁能告诉我我应该寻找什么?
【问题讨论】:
标签: spring-boot architecture software-design
在我看来,最好的方法是有一个版本化的上下文路径。类似于以下端点:
这意味着您将拥有至少 2 个不同的控制器(每个版本一个)和 2 个不同的模型。在未来的某个时候,如果您想坚持使用其中一个并且您的消费者已经迁移到另一个,您可以简单地放弃其中一个。
如果模型 v1 和 v2 之间的差异很大,这是正确的。如果它们不是很多或者不是那么复杂,您可能想看看JSON Views。
【讨论】:
@JsonView 注释来选择要包含在给定视图中的属性。