我目前在突变枚举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
,但错误仍然存在。
答案 0 :(得分:1)
定义枚举时,我们可以为枚举中的每个枚举值分配一个任意值。但是,此值仅由GraphQL服务本身在内部使用。例如,如果字段参数的类型是枚举,则此值将作为参数值传递给字段的解析器。但是,在编写GraphQL文档时,枚举值必须始终通过其名称而不是其值来引用。
mutation {
createPerson(enumArg: Bar) {
foo
}
}