可以为 GraphQL 解析器转换返回类型吗
Posted
技术标签:
【中文标题】可以为 GraphQL 解析器转换返回类型吗【英文标题】:Can the return type be transformed for a GraphQL resolver 【发布时间】:2021-03-12 16:59:34 【问题描述】:我有一个graphene-django
GraphQL API,我在其中添加了自定义指令和中间件,与graphene-django-extras
提供的非常相似。有几个地方枚举类型作为graphene.Int()
字段返回,我希望能够使用指令来转换graphene.String()
,但它本身并不能这样做。例如。
foo
bar # return Int
# vs
bar @readable # return String
这可能吗?我正在查看 ResolvInfo
字段,返回类型有一些内容,但最初的尝试不起作用。
编辑:FWIW 我认为 API 当前是使用 Python 和 Graphene 开发的并不重要。问题更多是关于 GraphQL 是否支持这一点,我假设如果不支持,那么任何语言或库都不会使它成为可能。
【问题讨论】:
【参考方案1】:拥有可变输出类型并不真正符合 graphQL 的精神。所以严格来说,你不应该尝试这样做。话虽如此,您可以轻松地为另一种类型添加另一个字段,即
type Foo
barStr: String
barInt: Int
然后只需在查询中询问您想要的那个。
【讨论】:
以上是关于可以为 GraphQL 解析器转换返回类型吗的主要内容,如果未能解决你的问题,请参考以下文章
Nestjs / GraphQL - Playground 为查询返回 Null 错误。我的解析器?
使用 eslint 从 graphql 解析器返回啥严格的打字稿类型?