GraphQL-binding 是一个用来生成 GraphQL Schema 具体实现的npm包。它可以帮助开发者快速地生成可维护的 GraphQL Schema。本文将详细介绍如何使用 graphql-binding,帮助你更好的掌握这个工具的使用方法。
准备工作
- 安装 Node.js 和 npm
# 安装 Node.js $ nvm install stable # 安装 npm $ npm install -g npm
- 安装 graphql、graphql-tools 和 graphql-binding
$ npm install graphql graphql-binding graphql-tools
使用方法
首先创建一个.js 文件,然后在文件头部引入 graphql-binding 和 graphql-tools。
const { makeExecutableSchema } = require('graphql-tools'); const { Binding } = require('graphql-binding');
接着,定义你的 GraphQL Schema,然后用 makeExecutableSchema
生成可执行的 GraphQL Schema。
-- -------------------- ---- ------- ----- -------- - - ---- ----- - ------ ------ - ---- ---- - --- --- ------ ------ ------- ------ - ---- -------- - ----------------- -------- ------- --------- ---- - -- ----- --------- - - ------ - ------ ------ ----- -------- ----- -- - ------ -------------- -- -- --------- - ----------- ------ ----- -------- ----- -- - ----- ---- - - --- -------------------- - -- ------ ----------- ------- ------------ -- ------------------------- ------ ----- -- -- ----- - --- ------ -- -------- ------ ------ -- ----------- ------- ------ -- ------------ -- -- ----- ------ - ---------------------- --------- ---------- ---
最后,用 Binding
生成一个可供调用的 GraphQL Schema Binding。
const BooksBinding = new Binding({ schema, });
现在,BooksBinding
就可以用来访问你的 GraphQL Schema 了。
GraphQL Schema Binding 的操作
默认情况下,每个 GraphQL 类型都为你的 Binding 自动生成了一组操作。下面我们将详细讲述每个类型的默认操作以及如何使用它们。
Query 操作
-- -------------------- ---- ------- -- ------ ----- -------- - ----- --------------------------- ---------------------- -- --------- ----- ------------ - ----- -------------------------- ------ -- --- -------------------------- -- ------ ----- ---------- - ----- ------------------------- ------ - --- --- - --- ------------------------
Mutation 操作
-- -------------------- ---- ------- -- ----- ----- ------- - ----- ---------------------------------- ----- - ------ ---- --- -- ----- ------- ---- ----- -- --- --------------------- -- --------- ----- ------------ - ----- ------------------------- ------ - --- --- - --- ----- ----------- - ----- ---------------------------------- ------ - --- --------------- -- ----- - ------- ------- -------- -- --- ------------------------- -- ----- ----- ------------ - ----- ------------------------- ------ - --- --- - --- ----- ----------- - ----- ---------------------------------- ------ - --- --------------- -- --- -------------------------
Subscription 操作
graphql-binding
还支持使用 Subscription 来监听你的 Schema,如下所示:
const subscription = await BooksBinding.subscription.onBookAdded({}, (payload) => { console.log('New Book Added:', payload); }); // 取消 Subscription subscription();
Custom 操作
如果默认操作不能满足你的需求,graphql-binding
还支持使用 Custom 操作。下面我们来看下如何使用 Custom 操作。
-- -------------------- ---- ------- -- ----- ----- ------------- - - ----- ---------------------- -------- - ------------ - ---------------- ------- -- - ----- ------ - - -- ----- ----- - ----- ----------------------------------- - ------- ------- -------- --- -------------------
总结
通过本文的介绍,我们了解了如何使用 graphql-binding
,生成可维护的 GraphQL Schema。使用 graphql-binding
可以大大提高 GraphQL Schema 的可维护性和可扩展性。同时,我们也详细介绍了 Binding
生成的默认操作以及如何使用 Custom 操作。希望本文可以帮助你更好地掌握 graphql-binding
的使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/graphql-binding