【问题标题】:Apollo federation can't start gateway阿波罗联盟无法启动网关
【发布时间】:2022-01-21 04:41:12
【问题描述】:

你好,我想使用联邦。我关注了这个tutorial。我可以启动我的子图,但是当我启动我的网关时,我收到了这个错误:

Error: A valid schema couldn't be composed. The following composition errors were found:
        Cannot extend type "Query" because it is not defined. Did you mean "User"?

Cannot extend type "Mutation" because it is not defined.

我什至扩展了 Query 和 Mutation,但又遇到了另一个错误。

我的网关代码:

import fastify from "fastify";
import { ApolloServer } from "apollo-server-fastify";
import { ApolloGateway } from "@apollo/gateway";

const PORT = process.env.PORT || 4000;
const IP = "0.0.0.0";

const app = fastify({ trustProxy: true });

const gateway = new ApolloGateway({
  serviceList: [{ name: "amazon", url: "http://localhost:4001/graphql" }],
});

(async () => {
  try {
    const { schema, executor } = await gateway.load();
    const server = new ApolloServer({ schema, executor });

    server.start().then(() => {
      app.register(server.createHandler({ path: "/graphql" }));

      app.listen(PORT, IP, (err) => {
        if (err) {
          console.error(err);
        } else {
          console.log("Server is ready at port 4000");
        }
      });
    });
  } catch (error) {
    console.log("dick");
    console.log("err", error);
  }
})();

我在子图中的架构:

type Query {
  getUsers: [User]!
}

type Mutation {
  createUser(name: String!): Boolean!
}

type User @key(fields: "id") {
  id: ID!
  name: String!
}

【问题讨论】:

  • 在子图中我个人使用extend type Query 而不是type Query,是否有效?
  • 面临完全相同的问题
  • @PrinceAgrawal 我的问题是 graphql 版本。我不得不降级到版本 15
  • 是的,我也这样做了,而且效果很好,顺便说一句。

标签: apollo-server apollo-federation


【解决方案1】:

您很可能正在使用 graphql 版本 16。在 https://www.apollographql.com/docs/federation/gateway/ 之后,您现在必须使用 15(2021 年 12 月)。试试:

yarn add graphql@15

您可以在最新版本上做的另一个细节是简单地将网关传递给 ApolloServer,如下所示:

const server = new ApolloServer({ gateway });

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 2019-12-09
    • 2021-10-21
    • 2020-07-17
    • 2021-01-05
    • 2021-06-01
    • 2013-02-02
    • 2017-10-15
    • 2021-09-09
    相关资源
    最近更新 更多