联合类型导致 graphql 订阅

Posted

技术标签:

【中文标题】联合类型导致 graphql 订阅【英文标题】:Union type result in graphql subscription 【发布时间】:2019-06-30 09:52:55 【问题描述】:

是否可以在 graphql 订阅中获得联合结果,特别是在 AppSync 中?

我在 AppSync 中尝试了以下操作,但收到错误“订阅的输出类型无效”

type Mutation 
  test1Mutation(test1arg: Test1Input!): Test1,
  test2Mutation(test2arg: Test2Input!): Test2


union DataMutationResult = Test1 | Test2

type Subscription 
    dataMutation(id: ID!): DataMutationResult
      @aws_subscribe(mutations: ["test1Mutation", "test2Mutation"])

【问题讨论】:

【参考方案1】:

AppSync 要求一个订阅中的变异返回类型都相同。我最终为所有突变创建了一个包装器返回类型,并在该包装器中有一个联合。

【讨论】:

以上是关于联合类型导致 graphql 订阅的主要内容,如果未能解决你的问题,请参考以下文章

graphql,联合标量类型?

了解 GraphQL 联合类型

GraphQL 联合和输入类型?

类型-graphql。字符串、布尔值和数字的联合类型失败

使用 graphql-ruby 实现联合类型

GraphQL - 在联合内的不同类型中使用相同的字段名称