假设我有一个这样的域:
type ProductSku {
id: ID!
name: String
}
type ProductLine {
id: ID!
name: String
productSkus: [ProductSku]
}
type Manufacturer {
id: ID!
name: String
productLines: [ProductLine]
}
在我的网站上,我有这样的路线:
/
-所有制造商的列表/apple
-有关Manufacturer
apple
/apple/iphone-11/
-有关ProductLine
下的iphone-11
apple
的信息/apple/iphone-11/64gb-black
-有关ProductSku
下64gb-black
下iphone-11
apple
的信息我无法为我的GraphQL服务器设计Query
类型。
我从这里开始:
type Query {
manufacturers: [Manufacturer]
}
这给了我所有数据,因此可以完成工作。但是,由于我丢弃了客户端的大部分数据,因此对于嵌套路由而言效率很低。
或者,我可以为每个路线定义一个查询:
type Query {
manufacturers: [Manufacturer]
manufacturer(manufacturerId: ID): Manufacturer
productLine(manufacturerId: ID, productLineId: ID): ProductLine
productSku(manufacturerId: ID, productLineId: ID, productSkuId: ID): ProductSku
}
但这似乎很冗长。
我应该如何处理?
请注意,这些ID仅在父级空间内是唯一的。例如,可能有两个包含产品SKU black-64gb
的产品线。这是因为它们实际上是来自URL的信息。