如何在 Deno 中使用 GraphQL 来构建 API?

阅读时长 6 分钟读完

Deno 是一种现代的 TypeScript 和 JavaScript 运行时环境,它与 Node.js 不同,它内置了 TypeScript 支持和安全性功能。GraphQL 是一种现代的 API 查询语言和运行时环境,它提供了更好的查询和响应定制能力。在本文中,我们将探讨如何在 Deno 中使用 GraphQL 构建 API。

安装 Deno 和相关依赖

首先,您需要在您的机器上安装 Deno。您可以按照 Deno 的官方文档 中的说明进行安装。安装完成后,您还需要安装 std 模块,该模块提供了很多基本的功能和工具,可简化您的开发工作。

安装 graphql 和相关依赖

接下来,您需要安装 GraphQL 和相关依赖。您可以使用 npmyarn 等包管理器安装。在本文中,我们使用 yarn

创建 GraphQL Schema

在建立 GraphQL API 之前,我们需要创建一个 GraphQL Schema。Schema 定义了 API 的类型系统和相应的数据,以及 API 上的查询和修改的方式。Schema 是通过定义类型(例如 UserPost 等)和相应的字段来实现的。以下是如何定义一个 User 类型:

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

此定义创建了一个名为 User 的类型,该类型有三个字段:idnameemail。此外,还有一个名为 posts 的字段,它可以查询与此 User 相关的所有帖子。

创建 GraphQL 服务和查询解析

在定义好 Schema 后,我们需要创建一个 GraphQL 服务来处理所有的查询和修改请求。以下是如何创建一个 GraphQL 服务:

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

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

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

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

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

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

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

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

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

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

我们首先创建了一个 schema 对象,该对象包含了我们在上面定义的所有类型和字段。接下来,我们创建了一个 GraphqlHTTP 对象,该对象将 schema 转换为 GraphQL 服务,并启用 GraphQL 的开发者工具 GraphiQL。

最后,我们使用 Deno HTTP 服务器创建了一个服务器并将 GraphQL 服务附加到服务器上。我们还定义了一个中间件来处理来自客户端的请求并将其转发给 GraphQL 服务。

测试 GraphQL API

现在我们已经创建了一个 GraphQL API,可以使用任何可以发送 HTTP 请求的工具(例如 cURL,Postman 或浏览器)向该 API 发送请求。以下是向 GraphQL API 发送查询请求的示例:

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

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

结论

本文演示了如何在 Deno 中使用 GraphQL 构建 API。使用 Deno 和 GraphQL 可以帮助我们快速构建高效和可扩展的 API。由于 Deno 内置了 TypeScript 支持和安全性功能,因此使用 Deno 可以更加轻松地创建类型安全的 API。如果您想要了解更多有关如何使用 Deno 或 GraphQL 构建 API 的信息,请参阅官方文档并查看其他教程。

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

纠错
反馈