gpt4 book ai didi

graphql - NestJS 和 Apollo 联盟 : buildFederatedSchema is deprecated

转载 作者:行者123 更新时间:2023-12-05 05:53:47 30 4
gpt4 key购买 nike

我使用 NestJS 和 Apollo Federation 有一段时间了,似乎自从上次更新以来我得到了

“(node:19113) DeprecationWarning:‘buildFederatedSchema’已弃用。请改用‘buildSubgraphSchema’。”

我没有看到可以使用 buildSubgraphSchema 的地方,也没有在 Apollo Federation 文档的 NestJS 文档中找到消除这个已弃用问题的方法。

我的包 json 中的完整依赖列表是

  "dependencies": {
"@apollo/federation": "^0.33.3",
"@apollo/subgraph": "^0.1.2",
"@nestjs/common": "^8.0.0",
"@nestjs/config": "^1.0.2",
"@nestjs/core": "^8.0.0",
"@nestjs/graphql": "^9.1.1",
"@nestjs/mongoose": "^9.0.1",
"@nestjs/platform-express": "^8.0.0",
"apollo-server-express": "^3.4.0",
"class-transformer": "^0.4.0",
"class-validator": "^0.13.1",
"graphql": "^15.6.1",
"helmet": "^4.6.0",
"joi": "^17.4.2",
"mongoose": "^6.0.12",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"rxjs": "^7.2.0"
},

GraphQL 模块在名为 graphql.module.ts 的文件中定义如下:

import { Module } from '@nestjs/common';
import { GraphQLFederationModule } from '@nestjs/graphql';
import { ApolloServerPluginInlineTraceDisabled } from 'apollo-server-core';

@Module({
imports: [
GraphQLFederationModule.forRoot({
plugins: [ApolloServerPluginInlineTraceDisabled()],
autoSchemaFile: true,
playground: true,
introspection: true,
buildSchemaOptions: {
dateScalarMode: 'isoDate',
},
context: ({ req }) => ({
jwt: req.headers.authorization,
}),
}),
],
})
export class GraphqlModule {}

项目仍然正常运行并显示已弃用的消息,但我很想知道如何修复它。

提前致谢

解决方案:2020-03-10

根据 Brando J 的回答,nestjs/graphql 从版本 9 到版本 10 的下一次更新修复了这个问题

最佳答案

此警告的原因来自@nestjs/graphql v9,它仍然使用来自@apollo/federation 的“buildFederatedSchema”。

您可以更新到@nestjs/graphql v10 以删除该消息。此外,GraphQLFederationModule 已被删除并替换为使用 ApolloFederationDriver 的 GraphQLModule。

tl;博士

  1. 更新@nestjs/graphql 到 v10
  2. 阅读此文档以将您的代码调整到新版本 https://docs.nestjs.com/graphql/migration-guide

关于graphql - NestJS 和 Apollo 联盟 : buildFederatedSchema is deprecated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69837187/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com