gpt4 book ai didi

GraphQL 将参数传递给子解析

转载 作者:行者123 更新时间:2023-12-04 02:11:37 25 4
gpt4 key购买 nike

我在 User 和 Post 之间有关系。这就是我查询用户帖子的方式。

const UserType = new GraphQLObjectType({
name: 'User'
fields: () => ({
name: {
type: GraphQLString
},
posts: {
type: new GraphQLList(PostType),
resolve(parent, args , { db }) {
// I want to get here the args.someBooleanArg
return someLogicToGetUserPosts();
}
}
})
});

主要查询是:
const queryType = new GraphQLObjectType({
name: 'RootQuery',
fields: {
users: {
type: new GraphQLList(UserType),
args: {
id: {
type: GraphQLInt
},
someBooleanArg: {
type: GraphQLInt
}
},
resolve: (root, { id, someBooleanArg }, { db }) => {
return someLogicToGetUsers();
}
}
}
});

问题是 UserType 帖子的解析函数中的 args 是空对象,我如何将 args 从主查询传递给子解析函数?

最佳答案

解析根查询时,您可以使用对象分配将参数附加到返回的用户对象。
然后,在用户类型上,从根值(解析函数的第一个参数)解析参数。

例子:

const queryType = new GraphQLObjectType({
name: 'RootQuery',
fields: {
users: {
type: new GraphQLList(UserType),
args: {
id: {
type: GraphQLInt
},
someBooleanArg: {
type: GraphQLInt
}
},
resolve: (root, { id, someBooleanArg }, { db }) => {
return Promise.resolve(someLogicToGetUsers()).then(v => {
return Object.assign({}, v, {
someBooleanArg
});
});
}
}
}
});

const UserType = new GraphQLObjectType({
name: 'User'
fields: () => ({
name: {
type: GraphQLString
},
posts: {
type: new GraphQLList(PostType),
resolve(parent, args , { db }) {
console.log(parent.someBooleanArg);
return someLogicToGetUserPosts();
}
}
})
});

关于GraphQL 将参数传递给子解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39732223/

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