简介
graphql-yoga 是一个基于 express 和 apollo-server-express 的轻松使用 GraphQL 的工具包。它具有自动启动 GraphQL Playground,有易于使用的 websocket 订阅和支持文件上传的功能。
安装及使用
使用 npm 包管理器安装:
npm install graphql-yoga
在您的项目中需要用到的地方引入:
const { GraphQLServer } = require('graphql-yoga')
示例代码
下面是一个简单的 GraphQL API 的示例代码:
-- -------------------- ---- ------- ----- - ------------- - - ----------------------- ----- -------- - - ---- ----- - ----------- -------- ------- - - ----- --------- - - ------ - ------ --- - ---- -- -- ------ ------ -- ---------- -- - ----- ------ - --- --------------- --------- --------- -- --------------- -- ------------------- -- ------- -- -----------------
以上代码定义了一个 Query 类型,其中包含一个 hello 方法,返回一个包含 “Hello {name}” 字符串的信息。
自动启动 GraphQL Playground
graphql-yoga 默认开启 GraphQL Playground,可以访问 http://localhost:4000
浏览器打开以便调试和发现 API。
支持文件上传
在 typeDefs 中添加 scalar Upload
来启用文件上传。下面是一个带有文件上传的例子:
-- -------------------- ---- ------- ----- - ------------- - - ----------------------- ----- -------- - - ------ ------ ---- ---- - --------- ------- --------- ------- --------- ------- - ---- ----- - ------ ------- - ---- -------- - ------------------ --------- ----- - - ----- --------- - - ------ - ------ -- -- ------ ------- -- --------- - ------------- --- - ---- -- -- - ------ -------------- -- - -- ------------------ --- -- --- ----- - ----------------- --------- --------- -------- - - ---- ------ - --------- --------- -------- - -- -- -- - ----- ------ - --- --------------- --------- --------- -- --------------- -- ------------------- -- ------- -- -----------------
支持 websocket 订阅
通过 this.pubsub.asyncIterator
可以启用 subscriptions 的功能。下面是一个带有发布/订阅的例子:
-- -------------------- ---- ------- ----- - -------------- ------ - - ----------------------- ----- -------- - - ---- ----- - ------ ------- - ---- ------------ - -------- ------- - ---- -------- - ------------------- --------- ------- - - ----- --------------------- - ----------------- ----- --------- - - ------ - ------ -- -- ------ ------- -- ------------- - -------- - ---------- --- --- - ------ -- -- - ------ ------------------------------------------- -- -- -- --------- - ----------- --- - ------- -- - ------ -- -- - ------------------------------------- - --------------- ------- -- ------ -------- --- -- ----------- -- -- - ----- ------ - --- -------- ----- ------ - --- --------------- --------- ---------- -------- - ------ -- -- --------------- -- ------------------- -- ------- -- -----------------
如此一来,您就可以愉快的使用 graphql-yoga 了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cbb81e8991b448e62f6