Как добавить условное ненулевое поле в схему GraphQL? - PullRequest
0 голосов
/ 14 марта 2020
type Review { 
   rating: Int!,
   text: String! 
}

Я хочу достичь - только одно поле может быть обнуляемым между рейтингом и текстом, или только одно поле не может обнуляться между рейтингом и текстом в типе «Обзор».

1 Ответ

0 голосов
/ 14 марта 2020

Вы можете использовать Интерфейс для моделирования такого поведения в GraphQL. Если я вас правильно понимаю, кажется, вы хотите иметь несколько типов Обзора, таких как:

type RatingBasedReview {
    rating  : Int!
}

type TextBasedReview {
    text   : String!
}

Сначала определите общий интерфейс для всего Обзора:

interface Review {

}

и каждого подпункта. Типы реализуют это:

type RatingBasedReview implements Review {
    rating  : Int!
}

type TextBasedReview implements Review {
    text   : String!
}

Затем клиент может использовать синтаксис встроенных фрагментов , чтобы указать, какие фактические подтипы он хочет запросить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...