在Relay / GraphQL模式配置中,如tutorial example中那样指定一对多关系(具有分页)
type ShipConnection {
edges: [ShipEdge]
pageInfo: PageInfo!
}
type ShipEdge {
cursor: String!
node: Ship
}
但是,由
ShipEdge
建立的一对一连接似乎是多余的。为什么不能将光标移动到ShipConnection
并将Ship
ID的数组存储为边?type ShipConnection {
edges: [Ship]
pageInfo: PageInfo!
cursor: String!
}
在一对多关系中,每个
edge
需要一个额外的对象的设计决策是什么?
最佳答案
edges
字段为您提供放置每条边缘数据的位置。例如,您可能想在其中放置creator
或priority
字段,分别描述谁添加了边以及关系的重要性。
如果您不需要这种灵活性(或通过连接获得的其他功能,例如分页),则可以使用简单的GraphQLList
类型。有关连接和列表之间的区别的更多信息,请参见this answer。
关于graphql - 为什么在Relay/GraphQL连接中需要边缘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33323894/