【发布时间】:2018-06-20 11:36:58
【问题描述】:
我是 GraphQL 的新手,但我真的很喜欢它。现在我正在使用接口和联合,我面临着突变的问题。
假设我有这个架构:
interface FoodType {
id: String
type: String
}
type Pizza implements FoodType {
id: String
type: String
pizzaType: String
toppings: [String]
size: String
}
type Salad implements FoodType {
id: String
type: String
vegetarian: Boolean
dressing: Boolean
}
type BasicFood implements FoodType {
id: String
type: String
}
现在,我想创造新的食物,所以我开始做这样的事情:
type Mutation {
addPizza(input:Pizza):FoodType
addSalad(input:Salad):FoodType
addBasic(input:BasicFood):FoodType
}
这不起作用有两个原因:
- 如果我想传递一个对象作为参数,这个对象必须是“输入”类型。但“Pizza”、“Salad”和“BasicFood”只是“类型”。
- 输入类型无法实现接口。
所以,我的问题是:如何在这种接口上下文中处理突变而不必过多地重复类型?我想避免使用 Pizza 类型进行查询和 InputPizza 类型进行突变。
感谢您的帮助。
【问题讨论】:
标签: interface graphql apollo mutation