【问题标题】:Multiple builtin type for graphqlgraphql 的多个内置类型
【发布时间】:2017-12-11 21:02:47
【问题描述】:

如何为 graphql 创建多种类型?我有这个给定的代码:

status: {
  type: GraphQLString || GraphQLBoolean,
  resolver: Blahblah
}

显然这不起作用,因为它将布尔值转换为字符串,我想同时支持布尔值和字符串。

我不能只是让它们成为字符串并调整代码,因为其他项目正在使用它们,并且在我可以联系其他开发人员之后需要一些时间,是的,我们的数据库中有错误的数据。

提前致谢。

【问题讨论】:

    标签: node.js types graphql graphql-js


    【解决方案1】:

    GraphQL 是关于特异性的。规范中故意很少有歧义的余地,即使它消除了方便的快捷方式,我认为这里问题的一种解决方案可能是 Union 类型,您可以定义一个类型,它是其他类型的联合,例如

    type StringType {
      fieldName: String
    }
    
    type BooleanType {
      fieldName: Boolean
    }
    
    union StringBool = StringType | BooleanType
    
    myQuery(someArg: String!): StringBool
    

    请记住,这只是作为查询返回值的可接受类型。它不是突变可接受的输入类型。当您指定要从查询中返回的字段时,您必须对不同的类型进行“分段”,并说明您希望从联合的每个可能成员返回哪些字段:

    ... on StringType {
      fieldName
    }
    ... on BooleanType {
      fieldName
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-19
      • 2019-06-27
      • 2023-03-03
      • 2020-03-22
      • 2019-10-01
      • 1970-01-01
      • 2018-11-21
      • 2021-08-22
      相关资源
      最近更新 更多