npm 包 @kbrandwijk/graphql-yoga 使用教程

阅读时长 5 分钟读完

简介

graphql-yoga 是一个基于 express 和 apollo-server-express 的轻松使用 GraphQL 的工具包。它具有自动启动 GraphQL Playground,有易于使用的 websocket 订阅和支持文件上传的功能。

安装及使用

使用 npm 包管理器安装:

在您的项目中需要用到的地方引入:

示例代码

下面是一个简单的 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

纠错
反馈