【问题标题】:serving multiple model version in springboot app - best approach在 Spring Boot 应用程序中提供多个模型版本 - 最佳方法
【发布时间】:2021-11-26 17:29:46
【问题描述】:

我的应用程序基于一些 api,它有多个版本。例如

  • v1:用户(姓名:字符串,姓:字符串)
  • v2:用户(名称:字符串,姓:字符串,中间名:字符串) 有没有比为每个版本创建另一个 POJO 类并创建另一组控制器、服务等更好的解决方案?

谁能告诉我我应该寻找什么?

【问题讨论】:

    标签: spring-boot architecture software-design


    【解决方案1】:

    在我看来,最好的方法是有一个版本化的上下文路径。类似于以下端点:

    • 您的域/v1/...
    • 您的域/v2/...

    这意味着您将拥有至少 2 个不同的控制器(每个版本一个)和 2 个不同的模型。在未来的某个时候,如果您想坚持使用其中一个并且您的消费者已经迁移到另一个,您可以简单地放弃其中一个。

    如果模型 v1 和 v2 之间的差异很大,这是正确的。如果它们不是很多或者不是那么复杂,您可能想看看JSON Views

    【讨论】:

    • 这是个坏消息,但我是这么认为的。但我有希望,有人给我一些光明。
    • 谢谢乔奥!
    • 模型 v1 和 v2 之间的差异是否有很多或 JSON 视图可以提供帮助?
    • 我没听说过json视图,你在说这个吗baeldung.com/jackson-json-view-annotation
    • 是的,我的答案中有链接。基本上,您可以坚持使用相同的模型并在模型中使用 @JsonView 注释来选择要包含在给定视图中的属性。
    猜你喜欢
    • 2023-03-13
    • 2021-04-03
    • 1970-01-01
    • 2016-02-11
    • 2018-12-28
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    相关资源
    最近更新 更多