【发布时间】: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