Допустим, у меня есть два типа 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!
IПредположим, мне понадобится тип оболочки, например:
type ClassroomStudent {
averageTestScore: Int!
numAbsences: Int!
student: Student!
}
Мне было интересно, существует ли стандартизированный способ сделать это?Кроме того, у меня есть много существующих запросов, которые напрямую связывают Classroom
с Student
, поэтому введение ClassroomStudent
было бы серьезным изменением API.Могу ли я спроектировать свои API-интерфейсы так, чтобы эти виды изменений были вполне органично представлены без внесения изменений, несовместимых с предыдущими версиями?
Спасибо за ваше время.