我有一个包含多个软件系统的graphql api。现在,我将直接在查询下列出所有类型,并带有软件系统的前缀。最终,每个软件系统可以具有数百种类型。
query {
ERP_ItemMaster (partId: Int!): ItemMaster
ERP_SalesOrder (doc: Int!): [SalesOrder]
ERP_PurchaseOrder ...
ERP_WorkOrder ...
Warehouse_Type1
Warehouse_Type2
ShopFloor_Type1
ShopFloor_Type2
SupplierQuality_Type1
SupplierQuality_Type2
}
type ItemMaster {
field
field
...
}
type SalesOrder {
field
field
...
}
...
...
这真的很好。例如,当我进入GraphiQL时,我开始输入“ ERP_”,建议框将其限制为该系统的类型/查询。
我想知道是否可以在查询下添加一个层来按软件系统对类型进行分组。
查询时,代替:
query {
ERP_ItemMaster(partId: 12345) {
field1
field2
}
}
我会:
query {
ERP {
ItemMaster(partId: 12345) {
field1
field2
}
}
}
在分组级别上,我陷入了分解器的困扰-上例中的ERP。它需要以某种方式包装该系统上子类型的所有解析程序-而不是顶级查询下每种类型的一个解析程序。
模式:
type Query {
ERP: ERP
Warehouse: Warehouse
ShopFloor: ShopFloor
SupplierQuality: SupplierQuality
}
type ERP { // What does the resolver look like for this?
ItemMaster(partId: Int!): ItemMaster
SalesOrder (doc: Int!): [SalesOrder]
PurchaseOrder (doc: Int!): [PurchaseOrder]
WorkOrder (doc: Int!): [WorkOrder]
}
type ItemMaster { ... }
type SalesOrder { ... }
type PurchaseOrder { ... }
type WorkOrder { ... }
type Warehouse { ... }
...
...
...
type ShopFloor { ... }
...
...
...
有可能吗?如果是这样,那甚至是个好主意,并且分组级别的解析程序是什么样的?
如果您有关于完全不同的组织方式的建议,我也愿意接受。我喜欢这样的想法:拥有一个端点并能够从那里访问公司的所有数据,但是也许为每个系统使用单独的graphql端点会更好?
谢谢!