GraphQL 是一种查询语言,它可以为客户端定义自己所需要的数据。通过 GraphQL,客户端可以精确地指定需要返回哪些数据,从而减少不必要的数据传输。GraphQL-dschema 是一个让你能够使用 JavaScript 来创建 GraphQL schema 的 npm 包,作为前端工程师,掌握这个包的使用教程是必不可少的。
安装和准备
在使用 graphql-dschema 之前,我们需要先安装它:
--- ------- ---------------
接下来,我们需要准备好一个命令行工具或者编辑器来执行 JavaScript 代码。我们强烈推荐使用 Visual Studio Code,它是一个免费的代码编辑器,且支持 TypeScript,并且有各种便利的扩展。
使用 graphql-dschema
graphql-dschema 的基本使用方法就是使用 JavaScript 定义 schema,全称为 schema definition language 或 SDL。一个简单的例子如下:
----- - ------------- - - --------------------------- ----- ------ - --------------- ---- ----- - ------ ------ - --- --------------------
上面的代码定义了一个简单的 schema,它包含了一个 Query 类型,其中有一个 hello 字符串。当我们运行这段代码时,会输出下面的消息:
- ----- ----------- ------------ - - ----- ----------------------- ----- - ----- ------- ------ ------- -- ------- - - ----- ------------------ ----- - ----- ------- ------ ------- -- ----- - ----- ------------ ----- - ----- ------- ------ -------- - -- ---------- -- - -- ----------- -- - -- ---- - ------ -- ---- --- ------- - ----- ----- ----- --- ------ ------------- ----- -------- -------- - - -
在上面的代码中,我们定义了一个函数 createDschema,它使用传给它的字符串作为 schema 的定义。这个函数返回一个 JavaScript 对象,它代表了我们的 schema。
上面的这段代码只是 graphql-dschema 实现了的简单特性。在真实的项目中,数据很可能来自数据库或者远程 API,因此我们需要使用更高级的特性,例如 resolver。resolver 充当了查询的真正处理程序。下面是一个更复杂的示例:
----- - ------------- - - --------------------------- ----- ----- - - - --- -- ----- ------- -- - --- -- ----- ----- - -- ----- ------ - --------------- ---- ---- - --- ---- ----- ------- - ---- ----- - -------- ------ ---- ------ -------- - --- ----- --------- - - ------ - ----- --- - -- -- -- - ------ --------------- -- ------- --- ---- -- ------ -- -- - ------ ------ - - -- --------------------
在上面的代码中,我们使用剪裁的 USERS 数组来定义 schema,其中包含两个类型:User 和 Query。我们还包含了一个 resolver,它查询 id 或所有用户。当我们运行这段代码时,会输出下面的消息:
- ----- ----------- ------------ - - ----- ----------------------- ----- - ----- ------- ------ ------ -- ------- - - ----- ------------------ ----- - ----- ------- ------ ---- -- ----- - ----- -------------- ----- - ----- ------------ ----- - ----- ------- ------ ----- - - -- ---------- -- -- - ----- ------------------ ----- - ----- ------- ------ ------ -- ----- - ----- -------------- ----- - ----- ------------ ----- - ----- ------- ------ -------- - - -- ---------- -- - -- ----------- -- -- - ----- ----------------------- ----- - ----- ------- ------ ------- -- ------- - - ----- ------------------ ----- - ----- ------- ------ ------ -- ----- - ----- ------------ ----- - ----- ------- ------ ------ - -- ---------- - - ----- ----------------------- ----- - ----- ------- ------ ---- -- ----- - ----- -------------- ----- - ----- ------------ ----- - ----- ------- ------ ----- - - -- ------------- ---------- ----------- -- - - -- - ----- ------------------ ----- - ----- ------- ------ ------- -- ----- - ----- ----------- ----- - ----- -------------- ----- - ----- ------------ ----- - ----- ------- ------ ------ - - - -- ---------- -- - -- ----------- -- - -- ---- - ------ -- ---- ---- ------- - ----- ----- ---- --- --- ------ ----- ------------------ ----- --- -------- ------ ------ ------ --------------- ----- -------- -------- - - -
我们可以看到,在这个例子中,graphql-dschema 能够生成具有复杂类型和 resolver 的 schema。
结语
在本文中,我们介绍了 npm 包 graphql-dschema 的使用教程,学习 graphql-dschema 可以让我们快速而简单地实现 GraphQL 服务端的工作。当然,我们只介绍了 graphql-dschema 的一部分功能,如果你想深入了解详情,建议阅读该包的文档。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600553f381e8991b448d149f