简介
rakkitql 是一个基于 TypeScript 的 GraphQL 框架,专为 Node.js 和浏览器开发的。它支持使用基于函数的 API 定义 schema,并增强了 TypeScript 类型检查功能。rakkitql 还具有易于扩展的特点,使用它可以大幅提高开发效率。
下面我们将会介绍如何使用 npm 包 rakkitql。
安装
安装 rakkitql 十分简单,使用 npm 进行安装即可:
npm install rakkitql
使用
定义 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