如何管理 GraphQL 查询循环?
How to manage GraphQL query loop?
假设我们有这个 GraphQL 架构:
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
}
`
有了这个,children就不能直接得到parents了,现在是top查询。我的第二个担心是知道这是否是一个好的选择,特别是如果第一个有问题。
提前致谢。
假设我们有这个 GraphQL 架构:
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
}
`
有了这个,children就不能直接得到parents了,现在是top查询。我的第二个担心是知道这是否是一个好的选择,特别是如果第一个有问题。
提前致谢。