比方说,我graphql服务器要在那里person3
和person5
一些ID的获取以下数据作为JSON:与动态密钥阿波罗/ GraphQL字段类型为对象
"persons": {
"person3": {
"id": "person3",
"name": "Mike"
},
"person5": {
"id": "person5",
"name": "Lisa"
}
}
问题:如何创建模式类型定义与阿波罗?
这里的密钥person3
和person5
取决于我的查询(即在查询中使用的area
)动态生成。所以在另一次我可能会得到person1
,person2
,person3
返回。 正如你看到的persons
不是Iterable的,所以下面将不作为graphql类型定义我与阿波罗做工作:
type Person {
id: String
name: String
}
type Query {
persons(area: String): [Person]
}
在persons
对象键可以永远是不同的。
当然,一种解决方案是将传入的JSON数据转换为使用persons
的数组,但是没有办法像这样使用数据?
你能澄清一下'b'和'g'是什么意思'动态生成取决于我的查询吗?一个或另一个的存在取决于请求中的字段吗? –
@DanielRearden所以'b'和'g'都是id的。也许我应该在这个问题上更清楚一点。该查询将包含仅用于获取人员子集的选项,因此对于一个查询,响应将包含id为“a”,“b”,“c”的人员以及用于另一个查询例如“b”和“g”的人员,如这个问题。 – Andru
@DanielRearden我现在把'b'改成'person3',把'g'改成'person 5',并加入了一些文字和变量以使其更清晰。该查询将包含选项以仅获取文本中概述的人员子集。 – Andru