【发布时间】:2017-07-17 14:24:44
【问题描述】:
我找到的所有示例都有一个 query 顶级对象,然后是一个查询列表,然后返回类型以进行更深入的分析。
由于我有大量查询,我想将它们分组,这是我尝试的:
const AppType = new GraphQLObjectType({
name: 'App',
description: 'Generic App Details',
fields: () => ({
name: { type: GraphQLString },
appId: { type: GraphQLInt },
}),
});
const MyFirstQuery = {
type: new GraphQLList(AppType),
args: {
appId: { type: GraphQLInt },
},
resolve: (root, args) => fetchApp(args.appId),
};
/* snip MySecondQuery, MyThirdQuery, MyFourthQuery */
const MyFirstGroupQuery = new GraphQLObjectType({
name: 'myFirstGroup',
description: 'the first group of queries',
fields: () => ({
myFirstQuery: MyFirstQuery,
mySecondQuery: MySecondQuery,
myThirdQuery: MyThirdQuery,
myFourthQuery: MyFourthQuery,
}),
});
/* snip MySecondGroupQuery, MyThirdGroupQuery and their types */
const QueryType = new GraphQLObjectType({
name: 'query',
description: 'read-only query',
fields: () => ({
myFirstGroup: MyFirstGroupQuery,
mySecondGroup: MySecondGroupQuery,
myThirdGroup: MyThirdGroupQuery,
}),
});
const Schema = new GraphQLSchema({
query: QueryType,
});
为什么我不能像 QueryType 那样制作 MyFirstGroupQuery 来制作更多嵌套级别?如果我将所有查询都放在QueryType 中,代码可以正常工作,但我的MyFirstGroupQuery 会产生错误:
Error: query.myFirstGroup field type must be Output Type but got: undefined.
如何实现我想要的?我真的不想只为我的所有查询添加前缀。
【问题讨论】:
-
你的意思是你在
GraphQLSchema中声明了Quertype
标签: graphql graphql-js