Графен: аргумент enum не работает - PullRequest
1 голос
/ 22 мая 2019

В настоящее время я испытываю трудности с перечислением мутаций Argument.

Ниже приведен мой код для Mutation:

class CreatePerson(graphene.Mutation):
    foo = graphene.String()

    def mutate(self, info, **kwargs):
        return CreatePerson(foo='foo')


    class Arguments:
        enum_arg = graphene.Argument(graphene.Enum.from_enum(EnumArg))

Класс перечисления:

from enum import Enum

class EnumArg(Enum):
    Baz = 0
    Bar = 1
    Spam = 2
    Egg = 3

Команда, использующая POSTMAN :

{
    "query": "mutation": {createPerson(enumArg=1) { foo }}
}

Но я получаю это сообщение об ошибке:

"message": "Argument \"enumArg\" has invalid value 1.
            Expected type \"EnumArg\", found 1.",

Я также пытался дать enumArg=\"Bar\" для мутации createPersonи ошибка все еще сохраняется.

1 Ответ

1 голос
/ 22 мая 2019

При определении перечисления мы можем присвоить произвольное значение каждому значению перечисления в перечислении.Однако это значение используется только внутри самой службы GraphQL.Например, если тип аргумента поля - enum, это значение будет передано резолверу поля в качестве значения аргумента.Однако при создании документа GraphQL значение перечисления всегда должно указываться по его имени, а не по значению.

mutation {
  createPerson(enumArg: Bar) {
    foo
  }
}
...