首页 文章

嵌套JSON的GraphQL架构?

提问于
浏览
1

我正在尝试使用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中的 address 字段中检索 streettown

谢谢

1 回答

  • 2

    好的,我明白了 . 我对模式中的不同类型的想法感到困惑,不得不引用一个单独的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}
        }
    })
    

相关问题