javascript - 如何管理 GraphQL 查询循环?
问题描述
假设我们有这个 GraphQL Schema:
gql`
type Department {
id: ID!
name: String!
programs(programId: ID): [Program]! # filter if an ID is provided
}
type Program {
id: ID!
name: String!
department: Department
}
extend type Query {
getDepartments: [Department]
}
`
这里的[可能]问题是你可以进入这个循环:
{
getDepartments {
name
programs(1) {
name
department {
name
program(1) {
...
}
}
}
}
}
我是 GraphQL 的新手,所以首先我想知道这是否有问题?我有这种感觉,但可能没问题。
我尝试使用这种替代方法:
gql`
type Department {
id: ID!
name: String!
programs(programId: ID): [Program] # filter if an ID is provided
}
type Program {
id: ID!
name: String!
}
extend type Query {
getDepartments: [Department]
getDepartmentForProgram(programId: ID!): Department
}
`
有了这个,孩子不能直接得到父母,这是现在的热门查询。我的第二个担心是知道这是否是一个好的选择,特别是如果第一个是一个问题。
提前致谢。
解决方案
推荐阅读
- elixir - 如何使用 EEx phoenix 模板检查嵌套值中的 nil
- java - Vaadin 14:如何从另一个线程更新组件的 CSS 样式?
- css - 为什么滚动时 div.scrollTop = div.scrollHeight 关闭一条消息?
- angular - 如何实现第 3 层子组件
- cordova - 将完成添加到永远不会完成的可观察对象
- scala - dotty/scala3 与 scala-native 和 scala-js 等技术的无缝集成如何?
- matlab - 如何从 matlab 中的另一个 gui 选项卡运行 gui?
- delay - Swift Combine - 延迟发布者
- javascript - 在括号表示法中嵌套点表示法以创建嵌套对象
- google-app-engine - 负载平衡和 nginx gcp 的问题