Kubernetes 创建&;是否部署GraphQL服务的多个版本?

Kubernetes 创建&;是否部署GraphQL服务的多个版本?,kubernetes,graphql,versioning,graphql-java,api-versioning,Kubernetes,Graphql,Versioning,Graphql Java,Api Versioning,我们正在现有服务上构建一个GraphQL服务包装器,需要为GraphQL API启用版本控制,以解决向后不兼容的更改。我们希望能够同时创建和部署至少两个不同版本的服务。我们正在考虑为版本化服务保留两个不同的版本化URL https://service-endpoint/09-2020/graphql https://service-endpoint/12-2020/graphql 这些服务将托管在Kubernetes上,我们正在寻找在代码和运行时方面管理不同版本的最佳实践,因为我们必须保留两

我们正在现有服务上构建一个GraphQL服务包装器,需要为GraphQL API启用版本控制,以解决向后不兼容的更改。我们希望能够同时创建和部署至少两个不同版本的服务。我们正在考虑为版本化服务保留两个不同的版本化URL

  • https://service-endpoint/09-2020/graphql
  • https://service-endpoint/12-2020/graphql
这些服务将托管在Kubernetes上,我们正在寻找在代码和运行时方面管理不同版本的最佳实践,因为我们必须保留两个不同的GraphQL模式

为了对代码进行版本控制,我们考虑为每个版本维护不同的Github分支。如果您对这种方法有任何反馈或有更好的方法,我们将不胜感激

目前,我们正在使用GraphQL Java和Spring boot starter作为独立的依赖项来构建服务。

典型的GraphQL风格是to,通过标记字段而不是删除字段来保持兼容性。你需要破坏兼容性吗?每个API版本都有一个单独的分支/构建/bug修复和测试周期/部署/JVM,这似乎根本无法很好地扩展。