如何在 Deno 中使用 GraphQL 进行 API 开发

阅读时长 9 分钟读完

Deno 是一个新颖的 JavaScript/TypeScript 运行时环境,它的目的是提供一个安全的环境来运行 JavaScript/TypeScript 代码。GraphQL 是一种现代化的 API 查询语言,它能够有效地解决 REST API 中的一些常见问题。在本篇文章中,我们将会学习如何在 Deno 中使用 GraphQL 进行 API 开发。

安装必要的库和工具

我们需要安装一些必要的库和工具来使用 GraphQL ,首先是安装 Deno:

接着安装 GraphQL 相关库:

编写 GraphQL API

我们可以从以下代码开始,它将创建一个简单的 GraphQL API:

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

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

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

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

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

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

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

在这个示例中,我们创建了一个名为 hello 的 query ,它返回了一个简单的字符串 “world”。我们还要创建一个 GraphQLService 对象来处理 GraphQL 操作。

向 GraphQL API 发送请求

现在我们可以使用 Altair GraphQL Client 来测试我们的 GraphQL API 了。下载 Altair GraphQL Client 后访问 http://localhost:8000/graphql,进入 Altair 后将 GraphQL API 的地址设置为 http://localhost:8000/graphql,如下图:

接着在左侧的 Query 标签页中输入以下查询语句:

按下运行按钮,你将在右侧看到以下响应:

从数据库中检索数据

现在我们已经知道了如何创建和测试一个简单的 GraphQL API ,接下来我们将会学习如何从数据库中检索数据。我们将会使用 SQLite 数据库,并使用 deno-sqlite 库来访问它。

首先,下载 deno-sqlite 依赖库:

接下来我们开始编写如下代码:

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

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

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

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

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

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

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

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

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

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

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

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

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

在上面的代码中,我们为 API 添加了一个名为 users 的查询和一个名为 addUser 的 mutation 。这些操作将在一个名为 users 的数组上执行,我们也可以通过添加数据库来进行数据的存储和管理。

现在我们可以运行这个程序,并通过 Altair GraphQL Client 访问我们的 API ,在左侧的 Query 标签页中输入以下查询语句:

按下运行按钮,你将在右侧看到以下响应:

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

现在我们添加一些数据,切换到 Mutation 标签页中,输入以下查询语句:

按下运行按钮,你将在右侧看到以下响应:

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

回到 Query 标签页,再次运行查询:

你将看到结果中已经包含了我们刚刚添加的用户:

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

总结

在本篇文章中,我们学习了如何在 Deno 中使用 GraphQL 进行 API 开发。我们了解了如何编写一个简单的 GraphQL API ,以及如何从数据库中检索数据。GraphQL 是一个非常强大的工具,它可以让我们构建出高度可靠、可扩展的 API 服务。Deno 的出现为我们提供了一个安全、现代、高效的开发工具,让我们可以更容易地使用 GraphQL 进行 API 开发。

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

纠错
反馈