Deno 中的 GraphQL 使用教程

阅读时长 7 分钟读完

介绍

Deno 是一个现代化的 JavaScript 和 TypeScript 运行时环境,它是由 Node.js 的创始人 Ryan Dahl 所开发。Deno 特点在于其安全性、可维护性和可扩展性。GraphQL 是一种用于构建 API 的查询语言,它提供了一个更加高效、强大和易用的方式来获取数据。本文将介绍如何在 Deno 中使用 GraphQL。

步骤

安装依赖

在使用 GraphQL 前,需要先安装一些依赖。首先安装 graphqldataloader。打开终端,运行以下命令:

建立 GraphQL Schema

建立 GraphQL Schema 是创建一个 GraphQL API 的第一步。以下是一个基本的例子:

-- -------------------- ---- -------
------ -
  ------------------
  --------------
  --------------
- ---- ------------

----- -------- - --- -------------------
  ----- -------
  ------- -- -- --
    --- - ----- ------------- --
    ----- - ----- ------------- --
    ------ - ----- ------------- --
  ---
---

----- --------- - --- -------------------
  ----- ----------------
  ------- -
    ----- -
      ----- ---------
      ----- - --- - ----- ------------- - --
      --------------- ----- -
        -- -- ------- ------
      --
    --
  --
---

------ ------- --- ---------------
  ------ ----------
---

这个例子定义了一个 UserType 和一个 RootQuery,并最终通过 new GraphQLSchema 返回一个可供使用的 GraphQL Schema。

处理 GraphQL 请求

要处理 GraphQL 请求,我们需要创建一个服务器,当收到 GraphQL 请求时,用我们建立的 GraphQL Schema 处理数据并返回结果。以下是一个基本的例子:

-- -------------------- ---- -------
------ - -- ---- ---- -------
------ -
  ----------------
  ----------------------
  ----------
- ---- ----------------------------------
------ - ------------ - ---- ----------------------------------
------ - -------------------- --------------------- - ---- ------------
------ ------ ---- --------------

----- -------- ------------------------------- ---------- -
  --- -
    --- ----- ------ ----- -- ---------- -
      -- ------- ----- --- --------- -
        --- -
          ----- ------- - ---------------------------------------
          ----- ------ - ----- ----------------------------- ---------

          ---------------------------------------
        - ----- ------- ---- -
          ----- ------------ - ----- ---------- ------------
            - --------------
            - - ------ --------- ------ ------ --

          ---------------
            ---------------- --- ----- -------- - ------- -------------- - ---
          --
        -
      - ---- -- ------------------------------ -
        ------
      -
    -
  - ----- ------- -
    --------------------- -- ------- ------ -----------

    -- --------------------- -
      ----- -------------------------------------------
    -
  -
-

----- ------ - --------------------

------------------- ----- -- -- -
  ------------------- ------- -- ---- -------

  --- ----- ------ --- -- ------- -
    ----- - ----- -- ---------- -- ---------- ------- - - ----

    -----------------
      -----
      ----------
      ----------
      --------
    --
      ---------------------------
      ------------ ----- -- -
        --------------------- -- ------ ---------- ---------

        ----- ------------- ------- --- ------------------------
      ---
  -
---

这个例子使用了 httpws 模块来创建 WebSocket 服务器,当接收到 WebSocket 请求时,讲请求数据传入我们建立的 GraphQL Schema 中,并将结果发送回客户端。

执行 GraphQL 查询

在我们的客户端中,我们可以使用任何支持 WebSocket 的 GraphQL 客户端来与我们的服务器进行通信,例如 Apollo Client。以下是一个基本的例子:

-- -------------------- ---- -------
------ - ---- ------------- - ---- -----------------------------------------

----- ---- - --- --------------- ---- ----------------------------- ---

----- ------ - --- --------------
  -----
---

----- ----- - ----
  ----- -
    -------- ---- -
      ----
      -----
    -
  -
--

-------------- ----- ---------------- -- ---------------------

在这个例子中,我们创建了 WebSocketLink 并将其传入 Apollo Client 中。然后我们创建了一个查询,查询名称为 user,参数为 id。当我们使用 client.query 发送查询给我们的服务器时,我们将看到服务器将数据返回给客户端。

结论

本教程介绍了如何在 Deno 中使用 GraphQL。我们学习了如何建立 GraphQL Schema 和如何通过 WebSocket 处理 GraphQL 请求,以及如何在客户端中使用 Apollo Client 执行 GraphQL 查询。希望这篇文章对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67513bdb8bd460d3ad8796e9

纠错
反馈