npm 包 rakkitql 使用教程

阅读时长 5 分钟读完

简介

rakkitql 是一个基于 TypeScript 的 GraphQL 框架,专为 Node.js 和浏览器开发的。它支持使用基于函数的 API 定义 schema,并增强了 TypeScript 类型检查功能。rakkitql 还具有易于扩展的特点,使用它可以大幅提高开发效率。

下面我们将会介绍如何使用 npm 包 rakkitql。

安装

安装 rakkitql 十分简单,使用 npm 进行安装即可:

使用

定义 schema

首先,我们需要定义我们的 schema。

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

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

我们定义了一个 Resolver,并在其上方加上了装饰器 @Resolver。我们接着定义了一个 Query,用于定义我们的查询方法 hello(),返回一个字符串 “Hello world!”。

创建 server

在我们定义了 schema 之后,我们需要用 rakkitql 来创建一个 server。在创建 server 之前,我们需要做一些额外的设置。

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

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

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

-------

我们首先引入了我们的 Resolver,在创建 server 的时候使用 resolvers 选项作为这些 Resolver 的列表。我们还使用了 defaultMiddlewares: false 选项来禁用一些默认的中间件,我们可以自己额外添加中间件。

查询数据

现在我们已经准备好了使用 rakkitql 查询数据。

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

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

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

我们使用 gql 函数来定义我们的查询。gql 函数是一个标记模板字符串,它允许我们编写 GraphQL 查询语句,它使用的是 TypeScript 模板字符串的类型检查功能。然后,我们使用 graphql-request 包中的 request 函数来发送我们的查询,查询的结果将会在 then 方法中返回。

添加中间件

如果我们需要添加额外的中间件,我们可以使用 middleware 选项。我们可以添加多个中间件,它们将以一个数组的形式传递。在下面的例子中,我们添加了一个用来验证访问令牌的中间件。

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

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

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

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

-------

我们首先定义一个用来验证访问令牌的中间件,并将其添加到 middleware 选项中。

订阅数据

如果我们需要实现数据的实时更新,我们可以使用 rakkitql 的订阅功能。

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

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

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

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

我们使用 gql 函数来定义我们的订阅。在创建 SubscriptionClient 实例的时候,指定了我们的 GraphQL 服务器的 WebSocket endpoint。我们使用了 rakkitql/client 中的 subscribe 函数来订阅我们的数据。

总结

我们在本文中学习了如何使用 npm 包 rakkitql。我们首先介绍了如何定义 schema,然后是创建 server,查询数据,添加中间件,最后是订阅数据。使用 rakkitql 可以大幅提高开发效率,这也是它越来越受欢迎的原因。

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

纠错
反馈