npm 包 apollo-server-plugin-base 使用教程

阅读时长 3 分钟读完

本文将介绍如何使用 npm 包 apollo-server-plugin-base,通过它我们可以轻松实现 Apollo Server 的插件功能。

什么是 Apollo Server?

Apollo Server 是一个用于构建 GraphQL API 的开源软件,它允许我们通过定义 schema 和 resolver 来描述 API 的行为。它支持多种数据源并提供了易于使用的工具和库,使开发者可以快速构建健壮、灵活的 GraphQL API。

什么是 apollo-server-plugin-base?

apollo-server-plugin-base 是一个用于创建 Apollo Server 插件的 npm 包,它允许我们轻松地添加附加功能到现有的 Apollo Server 实例中。例如添加日志记录、缓存、权限等常见功能。

安装 apollo-server-plugin-base

首先我们需要初始化一个新的项目,使用 npm 初始化命令:

然后我们需要安装 apollo-server 和 apollo-server-plugin-base 两个 npm 包:

接下来我们可以开始编写代码了。

编写插件

假设我们要添加一个简单的插件来记录每个请求的处理时间,我们可以使用 apollo-server-plugin-base 提供的 Hook 方法。

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

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

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

在这个示例中,我们使用 plugin 函数来创建一个名为 processingTime 的扩展属性,用于存储请求处理时间。我们将请求的开始时间保存在 start 变量中,在每个请求完成后,我们通过计算开始时间和当前时间得到处理时间,并将其存储在扩展属性中.

使用插件

现在我们已经编写了一个简单的插件来记录请求处理时间,我们需要测试它是否正常工作。我们可以发送一个测试请求,然后从响应的扩展属性中获取处理时间。

我们可以使用 GraphQL Playground 或其他类似的工具来测试请求,并找到处理时间信息:

结论

通过本文的学习,我们可以知道 apollo-server-plugin-base 是一个功能强大、易于使用的 npm 包,它可以方便我们添加各种功能到 Apollo Server 中。相信读者已经具备了使用它来扩展 Apollo Server 的技能和知识。

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