什么是 rx-lokka
rx-lokka 是一个基于 rxjs 的 Lokka 客户端的库。Lokka 是一个简单且通用的 GraphQL 客户端,它支持多种传输方式,如 HTTP、WebSocket 等。而 rx-lokka 则使用 rxjs 的 Observable 来执行异步操作,具有更好的可扩展性和可维护性。
如何使用 rx-lokka
安装
首先,在你的项目中安装 rx-lokka:
--- ------- -------- ------
使用
在你的代码中使用 rx-lokka 比较简单,只需要引入 rx-lokka 包,然后创建一个 rxLokka 对象,再使用该对象发送查询请求即可。
下面是一个基本的示例:
------ - ------------ - ---- ----------- ----- ------ - -------------- ---------- --- ------------------------------------------------------------------------ ------------- ------ -- ------------ --- -------------- - -------- - -- ----- ------- - - ------------------ -- --------------------
上述代码中,我们首先从 rx-lokka 包中引入了 createClient
函数。然后,我们创建了一个名为 client
的 rxLokka 客户端对象,该对象配置了 GraphQL API 的访问地址和用于从响应中提取有效数据的函数。最后,我们使用 client.query
方法发起了一个查询请求,并在请求成功时打印了响应结果。
配置
rxLokka 对象接受一个可配置的 options 对象,可以通过该对象配置请求传输方式、操作选项、数据格式化等。以下是 options 对象的常用配置选项:
transport
: 一个传输对象,例如使用 HTTP 传输的HttpTransport
或 WebSocket 传输的WebsocketTransport
。formatError
: 用于解析错误响应的函数。formatResult
: 用于解析成功响应的函数。useMiddlewares
: 用于在发送请求和解析响应时调用的中间件列表。timeout
: 请求超时时间,单位为毫秒。useGETForQueries
: 是否使用 HTTP GET 方法发送查询请求。fetchOptions
: 传递给 fetch 函数的选项(仅在 HTTP 传输方式下可用)。logErrors
: 是否应该打印请求错误信息。fetch
: 自定义fetch
方法。
发起查询请求
使用 rx-lokka 发起一个查询请求很简单,只需要使用 client.query
方法,并传递一个符合 GraphQL 查询语法的字符串即可。client.query
方法返回一个 rxjs 的 Observable
对象,通过订阅该对象即可获取响应数据。
以下是一个查询请求示例:
-------------- - -------- - -- ----- ------- - - ------------------ -- --------------------
发起变更请求
在 GraphQL 中,我们可以使用 mutation
来执行一些修改、删除等变更操作。和发送查询请求一样,我们同样可以使用 rx-lokka 的客户端对象来发送变更请求,只需要使用 client.mutate
方法,并传递一个符合变更操作语法的字符串即可。
以下是一个新增 Post 的变更请求示例:
--------------- -------- - ----------- ------ ------ ------- -------- ------ ----- ----- --- ------ - - -- ----- ------- - - ----------------- -- -------------------
订阅通知
在 GraphQL 中,我们可以使用 subscription
来订阅一些事件,比如新增 Post 事件。使用 rx-lokka,我们同样可以通过 client.watchQuery
方法来发送订阅请求,并订阅事件的通知。
以下是一个订阅新增 Post 的示例:
------------------- ------------ - ------- - -- ----- ------- - - ----------------- -- -------------------
总结
rx-lokka 是一个基于 rxjs 的 Lokka 客户端的库,它提供了更好的可扩展性和可维护性。使用 rx-lokka 发送查询请求、变更请求和订阅请求都非常简单,只需要使用 client 对象的 query、mutate 和 watchQuery 方法即可。除此之外,rx-lokka 的 client 对象还可以通过 options 配置对象进行更加高级的配置。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005600f81e8991b448ddf03