嵌套查询到未知级别 GraphQL [重复]
Posted
技术标签:
【中文标题】嵌套查询到未知级别 GraphQL [重复]【英文标题】:Nested query to unknown level GraphQL [duplicate] 【发布时间】:2019-10-12 08:32:23 【问题描述】:我有一个树形结构。以文件夹为例。
如何使用 GraphQL 将嵌套查询查询到 N 级。
让我们举个例子,因为我在类中有以下属性。
public class DocumentField
public int Id get; set;
public string Name get; set;
public List<DocumentField> Children get; set;
服务器端的设计方式是,如果有孩子,那么它将作为孩子包含在内。但是 graphql 层限制了它,因为我的查询如下。
以下查询不会带子结果。
query ($folderId: Int!)
folder(folderId: $folderId)
id,
name
以下查询给出错误:嵌套查询 DocumentFieldICollection 类型的字段子项必须有子选择
query ($folderId: Int!)
folder(folderId: $folderId)
id,
name,
children
【问题讨论】:
【参考方案1】:GraphQL 不允许动态查询这种递归结构到所有级别。您必须明确指定要查询的级别。例如,要查询到下 4 个级别,查询看起来很喜欢:
query ($folderId: Int!)
folder(folderId: $folderId)
id
name
children
id
name
children
id
name
children
id
name
您可以使用fragment
来减少此查询中的一些重复。详情请见this。
【讨论】:
哦。现在这第一行真的很令人沮丧。我不知道客户端有多少嵌套级别。以上是关于嵌套查询到未知级别 GraphQL [重复]的主要内容,如果未能解决你的问题,请参考以下文章
具有多个嵌套解析器并将字段映射到参数的 GraphQL 查询