内置插件
插件通过执行响应某些事件的Apollo Server's 功能由自定义operations来实现。这些事件对应于 GraphQL 请求生命周期的各个阶段,以及 Apollo Server 本身的生命周期。
某些Apollo Server功能作为内置插件提供,并从@apollo/server包中导出。Apollo Server 自动安装某些插件,但您也可以手动安装它们以覆盖其默认设置。有关详细信息,请参阅每个插件的文档。@apollo/server
包。Apollo Server 自动安装某些插件,但您也可以手动安装它们以覆盖其默认设置。有关详细信息,请参阅每个插件的文档。
您也可以创建自定义插件。
内置插件列表
名称 | 描述 | 位置 |
---|---|---|
使用报告 | 收集有用的操作使用数据并将其报告给 GraphOS 以进行可视化、警报等。 | apollo/server/plugin/usageReporting |
模式报告 | 启动时,自动向GraphOS报告服务器模式,以启用模式历史和最新度量。 | apollo/server/plugin/schemaReporting |
内联跟踪 | 主要用于联邦子图,将操作跟踪数据包含在网关的响应中。 | apollo/server/plugin/inlineTrace |
缓存控制 | 计算操作响应的缓存行为。 | apollo/server/plugin/cacheControl |
着陆页(多个) | 处理在Apollo Server的基本URL上显示默认或自定义着陆页。 | apollo/server/plugin/landingPage/default |
清理HTTP服务器 | 用于确保您的Node.js服务器优雅地关闭。 | apollo/server/plugin/drainHttpServer |
启用联邦订阅 | 使服务器可以处理来自Apollo Router的回调协议的联邦订阅请求。 | apollo/server/plugin/subscriptionCallback |
安装插件
您可以通过向ApolloServer构造函数提供一个plugins
配置选项来安装未默认安装的插件(或自定义默认插件):
import { ApolloServer } from "@apollo/server";import { ApolloServerPluginUsageReporting } from '@apollo/server/plugin/usageReporting';const server = new ApolloServer({typeDefs,resolvers,plugins: [// Sets a non-default option on the usage reporting pluginApolloServerPluginUsageReporting({sendVariableValues: { all: true },}),],});