python - 石墨烯:枚举参数似乎不起作用
问题描述
我目前很难处理突变枚举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
解决方案
在定义枚举时,我们可以为枚举中的每个枚举值分配一个任意值。但是,此值仅由 GraphQL 服务本身在内部使用。例如,如果字段参数的类型是枚举,则该值将作为参数值传递给字段的解析器。但是,在编写 GraphQL 文档时,枚举值必须始终由其名称引用,而不是它的值。
mutation {
createPerson(enumArg: Bar) {
foo
}
}
推荐阅读
- c# - WPF - WinForms ReportViewer 未在 RadWindow / Telerik 容器上显示 RDLC
- ruby-on-rails - ruby on rails - 按类别中的计数产品列排序
- sql - 如何在 postgres 数据库中仅获取具有最大 version_id 的行而无需昂贵的子查询?
- c# - 如何通过保留 IGroupings 过滤 IGrouping 的 IEnumerable 的元素
- php - 我有两个表第一个表有一些数据另一个表第二个有所有数据现在加入查询空值显示在 json 响应中
- android - Android bluedroid 堆栈 - 启用 a2dp 接收器 - NDK 应用程序
- docker - 使用主机中的 Delve/Goland 在容器中调试 Go 进程
- ibm-mobilefirst - 如何在 Eclipse mobilefirst 项目中启用扩展的应用程序真实性保护
- php - 提交表单后,我想将其重定向到另一个页面
- json - 循环通过json响应laravel 5.6