我正在尝试使用GraphQL来处理一些JSON数据。我可以从顶层检索字段没问题。我可以关联单独的JSON对象也没问题。我的问题正在发生,试图将数据降低一级。所以,我已经在我的架构中为员工定义了一个类型。 json看起来像这样:
"staff": [
{
"id": 123,
"name": "fred",
"role" : "designer",
"address": {
"street": "main street",
"town": "Springfield"
}
},
...
]
到目前为止并且架构中的相应类型如下所示:
const StaffType = new GraphQLObjectType({
name: 'Staff',
fields: {
id: {type: GraphQLInt},
name: {type: GraphQLString},
role: {type: GraphQLString}
}
})
就检索id,名称和角色而言,这样做很好。我的问题是如何将StaffType
扩展为从原始JSON中的street
字段中检索town
和address
?
由于
答案 0 :(得分:4)
好的,我明白了。我对模式中的不同类型的想法感到困惑,不得不引用一个单独的JSON,而实际上,我可以在模式中定义一个AddressType来引用嵌套数据,然后将它包含在StaffType中无需编写解析函数。
[编辑添加示例]
const StaffType = new GraphQLObjectType({
name: 'Staff',
fields: {
id: {type: GraphQLInt},
name: {type: GraphQLString},
role: {type: GraphQLString},
address: {type: AddressType}
}
})
const AddressType = new GraphQLObjectType({
name: 'Address',
fields: {
street: {type: GraphQLString},
town: {type: GraphQLString}
}
})