Apollo 服务器 v3 升级到 Apollo 服务器 v4
🌐 Apollo Server v3 upgraded to Apollo Server v4
Strapi 5 已迁移到 Apollo Server v4,这可能需要一些手动迁移步骤。
🌐 Strapi 5 has migrated to Apollo Server v4 and this might require some manual migration steps.
此页面是重大更改数据库的一部分,提供关于重大更改的信息以及从 Strapi v4 迁移到 Strapi 5 的附加说明。
🌐 This page is part of the breaking changes database and provides information about the breaking change and additional instructions to migrate from Strapi v4 to Strapi 5.
重大变更描述
🌐 Breaking change description
在 Strapi v4 中
GraphQL 服务器的 Apollo Server v3 和 GraphQL 模块的 graphql ^15。
🌐 Apollo Server v3 for the GraphQL server and graphql ^15 for the GraphQL module.
在 Strapi 5 中
GraphQL 服务器的 Apollo Server v4 和 GraphQL 模块的 graphql ^16。
🌐 Apollo Server v4 for the GraphQL server and graphql ^16 for the GraphQL module.
迁移
🌐 Migration
本节重新组合了有关引入的重大更改的有用说明和程序。
🌐 This section regroups useful notes and procedures about the introduced breaking change.
注意
🌐 Notes
- 由于 Apollo 在 v4 中引入了破坏性更改,Strapi 会在 Apollo Server 配置中自动设置
status400ForVariableCoercionErrors: true。在 Apollo v5 中,这一行为将再次成为默认设置。 - Strapi 5 将 graphql 包从 ^15 升级到 ^16,而在任何项目中只能包含一个版本。因此,依赖于 graphql:15 的用户代码或插件需要使用与 Strapi 相同的版本范围。
- 有关升级到 Apollo Server v4 的指导,请参阅以下《手动迁移》部分。有关更详细的信息,请查阅 Apollo v4 migration 文档。
手动迁移
🌐 Manual migration
要迁移到 Strapi 5:
🌐 To migrate to Strapi 5:
- 通过设置
x-apollo-operation-name头或在 GraphQL 插件多部分消息(文件上传)配置中添加csrfPrevention: false来禁用新的保护。 - 将
ApolloError替换为GraphQLError。 - 移除根级配置选项如
formatResponse,并在 plugins 数组中用插件钩子替代它们。 - 移除模块配置选项,并将其拆分为
typeDefs和resolvers。 - 将
debug替换为includeStacktraceInErrorResponses。