Единственный способ перевести переменные в поля - это использование директив @skip
и @include
. Например, :
query MyQuery($image: Boolean!) {
pokemons(first: 10) {
name
image @include(if: $image)
}
}
Здесь поле image
будет включено только в том случае, если переменная image
истинна, и пропущено, если переменная ложна.Директива @skip
работает так же, но работает в обратном порядке.Это не является устойчивым для большого количества полей, но это единственный встроенный способ сделать то, что вы пытаетесь достичь.
Если вы можете изменить код сервера, то вы могли бы потенциальносоздайте пользовательскую директиву, которая будет работать аналогично, но примет массив строковых значений и создаст набор выбора из этого списка.Затем переменная может быть передана в эту пользовательскую директиву.Но опять же, это предполагает, что вы можете изменить код на стороне сервера, что может быть не так.