与我们一起于10月8日至10日在纽约市参加活动,了解关于GraphQL联邦和API平台工程的最新技巧、趋势和新闻。加入我们,参加2024年在纽约市的GraphQL峰会
文档
免费开始

API 参考:Schema 报告插件


注意:Schema 报告插件不支持使用 Apollo Federation 的图。 如果你使用联邦,或者如果你想在 CI/CD 工作流中发布你的单体模式,你可以使用 Rover CLI 来发布你的模式或子图变更

使用插件

本文档介绍了ApolloServerPluginSchemaReporting 插件的选项,你可以从 @apollo/server/plugin/schemaReporting 导入。

这个插件使你的 能够在每次启动时将其最新模式注册到 Apollo 模式注册表中。有关模式报告的详细信息,请参阅 Apollo Studio 文档

为了使用此插件,你必须使用 配置你的服务器,可以通过 APOLLO_KEY 环境变量来实现,或者直接传递给您的 ApolloServer 构造函数(例如,new ApolloServer({apollo: {key: KEY}}))。这是与配置使用报告相同的方式。

你必须明确启用模式报告。如果您想使用默认配置来打开模式报告,可以将APOLLO_SCHEMA_REPORTING环境变量设置为true

如果您想配置模式报告(或者更愿意通过代码而非使用环境变量来设置配置),导入ApolloServerPluginSchemaReporting插件并将其传递给ApolloServer构造函数:

import { ApolloServer } from '@apollo/server';
import { ApolloServerPluginSchemaReporting } from '@apollo/server/plugin/schemaReporting';
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [ApolloServerPluginSchemaReporting()],
});
import { ApolloServer } from '@apollo/server';
import { ApolloServerPluginSchemaReporting } from '@apollo/server/plugin/schemaReporting';
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [ApolloServerPluginSchemaReporting()],
});

使用插件与多个部署实例一起使用

单个实例运行插件报告当前模式哈希到的必要性。该哈希是模式版本的标识符,不包含任何使用数据。GraphOS仅当所有Apollo Server实例(一个或多个)报告相同的模式哈希时,才在变更日志中反映新的模式版本。

选项

名称 /
类型
描述
initialDelayMaxMs

数字

模式报告器在开始报告之前等待。默认情况下,报告在0到10秒之间等待一些随机的时长。更长时间间隔会导致启动更加分散,这意味着多个服务器不太可能需要上传相同的模式。

如果此服务器在lambda或其他受限环境中运行,则减小模式报告最大等待时间以低于默认值将很有用。

这个数字将是模式报告器在开始报告之前等待的毫秒数的范围的最大值。

overrideReportedSchema

字符串

覆盖报告给Apollo注册表的已报告模式。这个模式不会经过任何,并将字符串直接发送到Apollo注册表。这可以用于注释或其他在生成GraphQLSchema时被删除的排序和空白字符变化。

如果您将此选项传递给此插件,应明确配置 ApolloServerPluginUsageReporting 并将其overrideReportedSchema选项传递相同值。这确保了由使用报告插件报告的请求相关的模式ID与此插件报告的模式ID相匹配。例如:

new ApolloServer({
plugins: [
ApolloServerPluginSchemaReporting({
overrideReportedSchema: schema
}),
ApolloServerPluginUsageReporting({
overrideReportedSchema: schema
}),
],
// ...
})
endpointUrl

字符串

报告模式的URL。主要用于测试和内部Apollo使用。

fetcher

fetch的类型

指定在报告模式时使用的Fetch API函数实现。

禁用插件

仅当APOLLO_SCHEMA_REPORTING设置为true时,才会自动安装模式报告插件,因此禁用此插件的最简单方法是避免设置该环境变量(不要显式安装ApolloServerPluginSchemaReporting)。但是,如果您想确保 schema reporting 插件未安装在您的服务器上(也许是为了可能在设置环境变量任意的测试中运行的测试),您可以安装ApolloServerPluginSchemaReportingDisabled插件来禁用 schema reporting,如下所示:

import { ApolloServer } from '@apollo/server';
import { ApolloServerPluginSchemaReportingDisabled } from '@apollo/server/plugin/disabled';
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [ApolloServerPluginSchemaReportingDisabled()],
});
import { ApolloServer } from '@apollo/server';
import { ApolloServerPluginSchemaReportingDisabled } from '@apollo/server/plugin/disabled';
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [ApolloServerPluginSchemaReportingDisabled()],
});
上一页
使用报告
下一页
内联跟踪
评价本文评价在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,专业名称Apollo GraphQL。

隐私政策

公司