Вы можете использовать Интерфейс для моделирования такого поведения в GraphQL. Если я вас правильно понимаю, кажется, вы хотите иметь несколько типов Обзора, таких как:
type RatingBasedReview {
rating : Int!
}
type TextBasedReview {
text : String!
}
Сначала определите общий интерфейс для всего Обзора:
interface Review {
}
и каждого подпункта. Типы реализуют это:
type RatingBasedReview implements Review {
rating : Int!
}
type TextBasedReview implements Review {
text : String!
}
Затем клиент может использовать синтаксис встроенных фрагментов , чтобы указать, какие фактические подтипы он хочет запросить.