前言
随着 GraphQL 在前端领域的流行,我们越来越多地使用 GraphQL 来取代传统的 REST API。然而,GraphQL Schema 的编写常常会变得冗长且难以维护,尤其是当 Schema 越来越庞大的时候。graphql-scribble 便是为此而生的一个 npm 包,通过使用一些简单的语法,可以极大地提高 GraphQL Schema 的可读性和可维护性。
安装
使用 npm 安装 graphql-scribble 包:
npm install graphql-scribble
使用
首先在你的代码文件中导入 graphql-scribble:
const { buildSchema } = require('graphql'); const { scribble } = require('graphql-scribble');
在构建 GraphQL Schema 的时候,我们可以使用 scribble
方法来简化 Schema 的编写。代码示例如下:
-- -------------------- ---- ------- ----- ------ - --------------------- ---- ---- - --- --- ------ ------- -------- ------- - ---- ---- - --- --- --------- ------- ---- ---- ------ -------- - ---- ----- - ------ -------- ------ -------- - ---- -------- - -------------------- -------- ---- ------ ----- ----------------- -------- -------- --------- ----- - ------ - ------ ----- --------- -------- - ---
如上所示,使用 graphql-scribble 可以将 Schema 大幅简化。这里的 scribble
函数是我们导入的方法之一,它的作用是将我们定义的字符串模板转换成一份可用的 GraphQL Schema。在模板中,我们可以使用类似于缩进等方式,将定义的 Schema 层次分明地表达出来。
指导意义
graphql-scribble 包不仅仅是减少了代码量这么简单,更重要的是使得 Schema 更加的可读性和可维护性。在当前前端技术栈中,GraphQL 的使用越来越广泛,在企业级的开发中,常常会出现一个巨大的 Schema,而使用 scribble
方式的语法,我们可以更加清晰的看到 Schema 中各个类型之间的关系,有利于我们更好地维护。
值得注意的是,graphql-scribble 并不是原生的 GraphQL 语法,但是 graphql-scribble 的语法受到了很多开发者的欢迎,已经成为很多人编写 GraphQL Schema 的标准方式,因此在学习 GraphQL 的过程中,花一些时间学习 graphql-scribble 的语法,会对我们在实际项目中的开发效率有很大帮助。
示例代码
下面是一个更加完整的 GraphQL Schema 示例:
-- -------------------- ---- ------- ----- ------ - --------------------- ---- ---- - --- --- ------ ------- ------- ------- -------- ---------- - ---- ------ - --- --- ----- ------- ------ ------- - ---- ------ - --- --- --------- --------- ----- ----- ------ ---- -------- ------- - ---- -------- - --- --- ----- ------- -------- --------- - ---- ----- - ------ -------- -------- ---------- ---------- ------------ -------- ---------- - ---- -------- - ----------------- -------- --------- ----- ----- ------------------ --------- ------- ------------------------ ---- ------- ---- ------ ----- -------- --------- ------- -------------------- --------- --------- - ------ - ------ ----- --------- -------- - ---
在这个示例代码中,我们可以看到一个典型的 Book-Review 的 Schema,使用 graphql-scribble 的方法编写,相较之下,可读性更强,代码也更加工整。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600566c381e8991b448e3238