【发布时间】:2019-02-20 12:38:06
【问题描述】:
假设我有两种 GraphQL 类型:
type Student {
id: ID!
name: String!
}
type Classroom {
id: ID!
students: [Student!]!
}
type Query {
classroom(id: ID!): Classroom!
}
那么我可以像这样运行查询:
{
classroom(id: 1) {
id
students {
id
name
}
}
}
如果设置了正确的解析器,这将返回与特定教室相关联的学生。
但是,假设我想找到一些与学生在课堂上的表现有关的信息,假设:
averageTestScore: Int!
numAbsences: Int!
我假设我需要一个包装器类型,例如:
type ClassroomStudent {
averageTestScore: Int!
numAbsences: Int!
student: Student!
}
我想知道是否有标准化的方法来做到这一点?此外,我有许多现有的查询将Classroom 直接绑定到Student,因此引入ClassroomStudent 将是一个破坏性的API 更改。有没有一种方法可以让我构建我的 API 以允许非常有机地引入这些类型的更改,而不会引入向后不兼容的更改?
感谢您的宝贵时间。
【问题讨论】:
标签: javascript graphql graphql-js