GraphQL根查询:相同的架构,不同的类型
我对GraphQL非常陌生,在我的根查询中,除了“type”属性之外,还有两个非常相似的字段,我想将它们组合起来GraphQL根查询:相同的架构,不同的类型,graphql,graphql-js,Graphql,Graphql Js,我对GraphQL非常陌生,在我的根查询中,除了“type”属性之外,还有两个非常相似的字段,我想将它们组合起来 allPosts返回一个post对象数组,而post返回一个post 每个字段都使用相同的模式,并且根据传入的参数在相应字段中确定加载器/资源 const RootQuery = new graphql.GraphQLObjectType({ name: 'Query', description: 'Root Query', fields: { a
allPosts
返回一个post对象数组,而post
返回一个post
每个字段都使用相同的模式,并且根据传入的参数在相应字段中确定加载器/资源
const RootQuery = new graphql.GraphQLObjectType({
name: 'Query',
description: 'Root Query',
fields: {
allPosts: {
type: new graphql.GraphQLList(postType),
args: {
categoryName: {
type: graphql.GraphQLString
}
},
resolve: (root, args) => resolver(args)
},
post: {
type: postType,
args: {
slug: {
type: graphql.GraphQLString
}
},
resolve: (root, args) => resolver(args)
},
});
是否可以将这两个字段合并为一个字段,并由传入的参数或其他变量确定类型?不,您不能
将字段定义为graphqlist
后,始终会得到一个数组。您不可能突然得到一个对象而不是数组。
当您将字段定义为GraphQLObjectType
(或任何其他标量类型)并希望得到一个数组作为结果时,同样的情况也适用于其他情况
这两个领域有着完全不同的目的
无论如何,您始终可以向allPosts
字段添加限制逻辑,并将结果限制为一个。但是,尽管如此,你总是只能得到一篇文章的数组不,你不能
将字段定义为graphqlist
后,始终会得到一个数组。您不可能突然得到一个对象而不是数组。
当您将字段定义为GraphQLObjectType
(或任何其他标量类型)并希望得到一个数组作为结果时,同样的情况也适用于其他情况
这两个领域有着完全不同的目的
无论如何,您始终可以向allPosts
字段添加限制逻辑,并将结果限制为一个。但是,尽管如此,您总是只得到一个post的数组您所说的“每个字段使用相同的模式”是什么意思?当这两个字段有不同的用途时,为什么要合并它们?您所说的“每个字段使用相同的模式”是什么意思?当这两个字段有不同的用途时,为什么要合并它们?