gpt4 book ai didi

graphql - 合并模式后 "GraphQLError: field not found in type: ' query_root '"

转载 作者:行者123 更新时间:2023-12-05 08:31:39 31 4
gpt4 key购买 nike

我使用 graphql-tools 拼接了两个 graphql 端点。对于一个端点模式,它工作正常,但对于另一种模式,它会抛出此错误“GraphQLError:在类型中找不到字段:‘query_root’”。即使我在内省(introspection)时可以看到所有架构。

    const createRemoteExecutableSchemas = async () => {
let schemas = [];
for (let api of graphqlApis) {
const http = http_link.HttpLink({
uri: api.uri,
fetch:fetch
});
const link1 = setContext.setContext((request, previousContext) => {
return {
headers:{authorization: previousContext.graphqlContext.headers.authorization}
}
}).concat(http);

const link2 = setContext.setContext((request, previousContext) => ({
headers: {
'x-hasura-admin-secret': api.secret
}
})).concat(http);
const remoteSchema = await gtool.introspectSchema(link2);
const remoteExecutableSchema = gtool.makeRemoteExecutableSchema({
schema: remoteSchema,
link:link1
});
schemas.push(remoteExecutableSchema);
}
return schemas;
};

const createNewSchema = async () => {
const schemas = await createRemoteExecutableSchemas();
return gtool.mergeSchemas({
schemas:schemas
});

};

const runServer = async () => {
const schema = await createNewSchema();
const server = new ap_server.ApolloServer({
schema:schema,
context: ({ req }) => {
return {
"headers": req.headers
}
}
});
server.listen().then(({url}) => {
console.log(`Running at ${url}`);
});
};
```

最佳答案

我找到了一个解决方案。发生这种情况是因为错误的授权被转发到第二个端点。

关于graphql - 合并模式后 "GraphQLError: field not found in type: ' query_root '",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56702835/

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