首页 > 解决方案 > 如何在登台服务器上保持 GraphQL API 和前端同步?

问题描述

我们在一个 GIT 存储库中有一个带有 GraphQL API 的 Rails 应用程序,在另一个存储库中有 React 前端应用程序。后端和前端都有 CI,并且是分开部署的。但是后端和前端仍然处于繁重的开发中,而且我们的登台服务器通常无法工作,因为部署不同步并且我们不测试整个应用程序 - 我们测试 API 并且我们在没有 API 的情况下测试前端。

仅在同步时部署前端和后端的最佳方法是什么,我的意思是当新版本不会破坏功能时?我考虑了第三个存储库,其中包含后端和前端作为 GIT 模块、验收测试和同时部署双方。但也许有更简单的解决方案?也许一些版本控制?

标签: apideploymentgraphqlversioningapi-design

解决方案


您当然可以使用 GraphQL 进行版本控制,但理想情况下,对架构的任何更改都不应该是破坏性的。这只需要后端开发人员的纪律,尽管也有工具(像这样)来帮助检测重大更改。一些一般准则:

  • 使用指令弃用字段@deprecated而不是删除它们。已弃用的字段可以传达给客户团队,并在一些商定的时间后退役。
  • 避免重命名类型。尝试使用更具体的命名来避免将来必须重命名事物(即,如果您可以预见将来会有不同类型的消息,则使用emailMessage而不是使用)。message
  • 使用有效负载类型进行突变。User例如,如果你改变 a ,而不是仅仅返回User,返回一个有一个user字段的有效载荷类型。如果在路上,您意识到突变还应该返回其他信息,您可以轻松地将字段添加到有效负载类型,而无需创建重大更改。

推荐阅读