Graphql - 阿波罗服务器 - 热更新模式



我希望在我的apollo-server-express服务器上热重载我的GraphQL模式。有人会知道如何做到这一点吗?

我目前正在使用模式拼接来收集多个 API 的架构,但是我不希望每次更改这些架构之一时都必须重新启动我的应用程序。

我试图寻找快速路线并将其删除,但 dit 不起作用,我也尝试在同一条路线上再次调用graphQLExpress(),但没有更新它。

感谢您的帮助!

我深入研究

了一下graphqlExpress调用,它相当轻量级,只是使用提供的模式返回一个中间件函数。我能够通过包装它来确保它始终使用我的最新架构:

let schema = createSchema();
app.use('/graphql', bodyParser.json(), function(req, res, next) {
  // ensure latest schema is always passed in, we'll reload it automatically
  const graphql = graphqlExpress({ schema });
  graphql(req, res, next);
});

目前正在使用本地/静态架构,因此文件观察器允许我根据需要在此处更新schema

我设法通过删除快速路由然后重新创建它来完成它。但实际上我发现,由于makeRemoteExecutableSchema在每个请求中发送内省查询,您实际上不需要更新您的架构,它会自行更新。这并不意味着Graphiql。

最新更新