GraphQL 中的关系 "metadata"

Relation "metadata" in GraphQL

我不确定我在这里使用的术语是否正确,但这就是我想要做的:

关于两种类型之间的关系,我想添加关于该关系的元数据。 例如,在 SQL 中,您可以有一个连接 table,其中包含一些关于关系的额外数据。

例如,如果我们有两种类型:

type Todo {
    id: ID!
    name: String
    lists: [List]
}

type List {
    id: ID!
    name: String
    todos: [Todo]
}

然后关于 TodoList 之间的“关系”,我想将 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
}