代码之家  ›  专栏  ›  技术社区  ›  geoffjay

可以为GraphQL解析器转换返回类型吗

  •  0
  • geoffjay  · 技术社区  · 4 年前

    我有一个 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是否支持这一点,我假设如果它不支持,那么任何语言或库都无法实现这一点。

    0 回复  |  直到 4 年前
        1
  •  1
  •   Mark Chackerian    4 年前

    具有可变输出类型并不真正符合graphQL的精神。所以严格来说,你不应该这样做。也就是说,你可以很容易地为其他类型添加另一个字段,即。

    type Foo {
        barStr: String
        barInt: Int
    }
    

    然后只需在查询中询问您想要的那个。