【发布时间】:2020-09-16 20:55:43
【问题描述】:
假设我的 graphql 服务器想要以 JSON 格式获取以下数据,其中 person3 和 person5 是一些 id:
"persons": {
"person3": {
"id": "person3",
"name": "Mike"
},
"person5": {
"id": "person5",
"name": "Lisa"
}
}
问题:如何用 apollo 创建 schema 类型定义?
这里的键 person3 和 person5 是根据我的查询动态生成的(即查询中使用的 area)。所以在另一个时间我可能会得到person1、person2、person3 返回。
如您所见,persons 不是 Iterable,因此以下内容不能作为我对 apollo 所做的 graphql 类型定义:
type Person {
id: String
name: String
}
type Query {
persons(area: String): [Person]
}
persons 对象中的键可能总是不同的。
当然,一种解决方案是将传入的 JSON 数据转换为使用 persons 的数组,但有没有办法像这样处理数据?
【问题讨论】:
-
你能澄清
b和g是dynamically generated depending on my query的意思吗?是否存在一个或另一个取决于请求中存在的字段? -
@DanielRearden 所以
b和g是id。也许我应该在问题中更清楚地说明这一点。该查询将包含仅获取一部分人的选项,因此对于一个查询,响应将包含 ID 为a、b、c的人员,对于另一个查询,例如b和g,如问题。 -
@DanielRearden 我现在将
b更改为person3并将g更改为person 5,并添加了一些文本和一个变量以使其更清晰。该查询将包含仅获取文本中现在概述的一部分人的选项。
标签: graphql apollo apollo-server