【发布时间】:2021-08-31 10:03:53
【问题描述】:
假设我有以下内容:
type User {
id: Int!
name: String
dob: String
friends: [User]
}
Query {
user(id: Int!): User
}
在我看来,我刚刚创造了无限递归的潜力:
query GetUser($userId: Int!) {
user(id: $userId) {
friends {
name
friends {
name
friends {
name
...etc
}
}
}
}
}
在我的 user 解析器中,我将如何防止这种情况发生?
【问题讨论】:
-
这不是无限递归,因为您的查询只加载三个嵌套级别,而不是无限数量。您能否澄清一下您具体关注的是什么?
-
通常计算/限制最大深度级别/复杂性成本 - 根本没有在类型系统中定义 - 实现相关细节
标签: graphql apollo apollo-client apollo-server graphql-js