【发布时间】:2020-03-15 20:36:59
【问题描述】:
假设我们有这个 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
}
`
有了这个,孩子们不能直接得到父母,它现在是一个热门查询。我的第二个担心是知道这是否是一个好的选择,尤其是如果第一个是一个问题。
提前致谢。
【问题讨论】:
标签: javascript graphql apollo-server gql