2017-07-07 100 views
0

我怎样才能创建graphql多类型?我有这样的指定代码:多内建类型graphql

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

这显然行不通怎么把它布尔转换为字符串,我想支持布尔和字符串。

我不能让他们字符串,因为其他项目使用它们调整的代码,它会采取一段时间后,我可以联系其他的开发者,是的,我们对我们的数据库中的错误数据。

在此先感谢。

回答

1

GraphQL是所有关于特异性。有意识地在规范空间很小歧义,甚至当它消除了方便的快捷方式,我觉得这里一个解决问题的办法可能是联盟类型,因此你定义一个类型,它是其他类型的联合,因此,例如

type StringType { 
    fieldName: String 
} 

type BooleanType { 
    fieldName: Boolean 
} 

union StringBool = StringType | BooleanType 

myQuery(someArg: String!): StringBool 

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

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