Есть ли возможность запросить описание перечисления вместо значения

Я запрашиваю какой-то тип из схемы graphql, и для определенного поля я хочу получить его с описанием перечисления вместо значения перечисления.

type Gigi {
   a: SomeEnum!
   b: Int!
}

enum SomeEnum {
   "Bla"
   BLA

   "Foo"
   FOO
}

Я хочу получить поле Gigi.a с описанием перечисления. Например:

{
   a: "Bla"
   b: 5
}

Кто-нибудь знает возможно ли это?


person Yair Cohen    schedule 10.08.2019    source источник


Ответы (1)


Описания типов, полей и значений перечисления существуют только для целей документации и поэтому доступны только через запрос самоанализа:

query {
  __type(name: "SomeEnum") {
    enumValues {
      name
      description
    }
  }
}

Также обратите внимание, что в спецификации нет ничего, что требовало бы, чтобы значения перечисления были заглавными, поэтому вы можете иметь такое перечисление, как:

enum SomeEnum {
  Bla
  Foo
}
person Daniel Rearden    schedule 10.08.2019
comment
Спасибо за ответ! Я использую описание на стороне клиента. Я найду другой способ сделать это :) - person Yair Cohen; 11.08.2019
comment
@YairCohen Вы всегда можете запустить запрос самоанализа, когда вы инициализируете свой клиент, а затем примените преобразование на стороне клиента. В зависимости от вашего варианта использования вы также можете подумать о том, чтобы обернуть перечисление в тип, который будет включать как значение перечисления, так и описание. Или просто верните String вместо перечисления для поля и примените преобразование внутри преобразователя поля. - person Daniel Rearden; 11.08.2019
comment
Я думаю, что я выберу установку перечислений на стороне сервера только с их значениями и установлю перечисления, которые включают как значения, так и описание на стороне клиента, и сделаю двустороннее преобразование на клиенте. В очередной раз благодарим за помощь! :) - person Yair Cohen; 11.08.2019