我發現的所有例子都有一個query
頂級對象,然後是一個查詢列表,然後返回類型更深的查詢。如何嵌套graphql查詢
因爲我有大量的查詢,我想他們組了,這是我的嘗試:
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,
});
爲什麼我不能讓MyFirstGroupQuery
像我一樣QueryType
,使多個嵌套層次?代碼工作正常,如果我把所有的查詢中QueryType
,但我MyFirstGroupQuery
產生錯誤:
Error: query.myFirstGroup field type must be Output Type but got: undefined.
如何實現我想要什麼?我真的不想僅僅加上我的所有查詢的前綴。
你的意思是像你這樣的聲明的'Quertype'在'GraphQLSchema' –