GraphQL 是一种让前端和后端都十分喜爱的查询语言。如果你在前端上使用 GraphQL,那么你一定会涉及到 Schema。Schema 是定义 GraphQL 查询语句的结构的一种语言。然而,Schema 随着业务的变化而变化,这就带来了一系列的问题:如何记录 Schema 的变化?如何在迭代的过程中保证不出错?如何管理变化的历史?解决这些问题的一个良好的解决方案是使用 graphql-schema-comparator 这个 npm 库。
1. 安装
使用 npm 安装 graphql-schema-comparator。
npm install -g graphql-schema-comparator
2. 比较 schema
将两个 schemas 分别存放在文件中,然后使用下面的命令来比较它们:
graphql-schema-comparator schema1.graphql schema2.graphql
比较结果会展示出两个 schemas 的差异。
3. 自动化
如果你需要在你的自动化测试中使用 graphql-schema-comparator,你可以使用以下的代码:
-- -------------------- ---- ------- ----- -- - -------------- ----- ----------------------- - ------------------------------------- ----- --------- - --------------------------------------- -------- ----- --------- - --------------------------------------- -------- ----- ------ - ------------------------------------------------- ----------- -- ------------------------------ - -- - ------------------- ------- ------------ --------------------- ----------- --- ------ ------ -- ----------------------- - -------------------------------- - ---------------- -
这个代码会比较两个文件 old_schema.graphql
和 new_schema.graphql
中的 schemas,如果在新的 schema 中有破坏性变化,则会打印出错误并退出。
4. 结论
graphql-schema-comparator 并不是解决 schema 变更的唯一方式,但是是一个非常好的、易于使用的 npm 库。它可以帮助开发人员在变更时保证好的生产力和代码质量,同时也可以保持一个健康的 schema 历史。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b5851ab1864dac66e18