GraphQL 中的关系 "metadata"
Relation "metadata" in GraphQL
我不确定我在这里使用的术语是否正确,但这就是我想要做的:
关于两种类型之间的关系,我想添加关于该关系的元数据。
例如,在 SQL 中,您可以有一个连接 table,其中包含一些关于关系的额外数据。
例如,如果我们有两种类型:
type Todo {
id: ID!
name: String
lists: [List]
}
type List {
id: ID!
name: String
todos: [Todo]
}
然后关于 Todo
和 List
之间的“关系”,我想将 order
作为元数据,它描述了 Todo
的顺序给 List
.
(也许不是最好的例子,但希望你明白了)。
关于如何在 GraphQL 中完成此操作的任何要点?
谢谢!
您需要使用第三种类型来表示其他两种类型之间的关系。
type Todo {
id: ID!
name: String
lists: [ListTodo]
}
type ListTodo {
list: List
todo: ToDo
order: Int
}
type List {
id: ID!
name: String
todos: [ListTodo]
}
如果您使用 connection pattern,来自连接 table 的数据可以添加到适当的边缘类型:
type Todo {
id: ID!
name: String
lists: ListConnection
}
type ListConnection {
pageInfo: PageInfo
edges: [ListEdge]
}
type ListEdge {
cursor: String
node: Edge
order: Int
}
我不确定我在这里使用的术语是否正确,但这就是我想要做的:
关于两种类型之间的关系,我想添加关于该关系的元数据。 例如,在 SQL 中,您可以有一个连接 table,其中包含一些关于关系的额外数据。
例如,如果我们有两种类型:
type Todo {
id: ID!
name: String
lists: [List]
}
type List {
id: ID!
name: String
todos: [Todo]
}
然后关于 Todo
和 List
之间的“关系”,我想将 order
作为元数据,它描述了 Todo
的顺序给 List
.
(也许不是最好的例子,但希望你明白了)。
关于如何在 GraphQL 中完成此操作的任何要点?
谢谢!
您需要使用第三种类型来表示其他两种类型之间的关系。
type Todo {
id: ID!
name: String
lists: [ListTodo]
}
type ListTodo {
list: List
todo: ToDo
order: Int
}
type List {
id: ID!
name: String
todos: [ListTodo]
}
如果您使用 connection pattern,来自连接 table 的数据可以添加到适当的边缘类型:
type Todo {
id: ID!
name: String
lists: ListConnection
}
type ListConnection {
pageInfo: PageInfo
edges: [ListEdge]
}
type ListEdge {
cursor: String
node: Edge
order: Int
}