我发现关于
schema.gql
和版本控制的双重担忧。我有 NestJS + GQL 应用程序,它是在代码优先实践中开发的。架构文件是自动生成的。
许多(非官方)来源建议将该文件保留在 git 中,以便我们可以跟踪更改。另一方面,检查 github 存储库时,我发现人们将
schema.gql
添加到他们的 .gitignore
文件中。
在决定正确的方法时,我应该考虑哪些因素以及上述每种方法的优缺点是什么?
我认为作为一个好的实践,您可以保留
.gql
模式,因为它是代码的一部分,应用程序的一部分,其他开发人员可以看到并可以研究以理解代码。
就安全性而言,当您部署应用程序时,用户将看不到这些文件。如果您正在开发一个公开 API 文档的应用程序,那么很自然,您的
.sql
模式的所有功能都可以详细查看,例如您为每个变量声明的类型,您可以看到使用 Apollo Graphql Explorer。