如何为graphql创建多种类型?我有这个代码:
status: {
type: GraphQLString || GraphQLBoolean,
resolver: Blahblah
}
显然这不起作用因为它将布尔值转换为字符串,我想支持布尔值和字符串。
我不能只是让它们成为字符串并调整代码,因为其他项目正在使用它们,并且在我可以联系其他开发人员之后需要一段时间,而且我们的数据库中有错误的数据。
提前致谢。
答案 0 :(得分:1)
GraphQL是关于特异性的。在规范中故意存在很小的模糊性,即使它消除了方便的快捷方式,我认为这里的问题的一个解决方案可能是一个Union类型,你可以定义一个类型,它是其他类型的联合,所以例如< / p>
type StringType {
fieldName: String
}
type BooleanType {
fieldName: Boolean
}
union StringBool = StringType | BooleanType
myQuery(someArg: String!): StringBool
请记住,这只是一种可接受的类型,作为查询的返回值。它不是可接受的突变输入类型。当您指定要从查询返回的字段时,您将必须对不同类型进行“分段”,并解释您希望从联合的每个可能成员返回哪些字段:
... on StringType {
fieldName
}
... on BooleanType {
fieldName
}