Graphql和访问类型属性取决于某些逻辑

时间:2018-01-04 01:43:11

标签: api graphql

我是Graphql的新手,有些事情仍然让我感到困惑。

我正在开展一个类似于Todo List的项目。 用户可能有多个todo items,某些项目的属性必须仅对所有者可见,有些应该是公开的。

到目前为止,我提出了两个想法:

1)首先是创建两个单独的类型,如:

ToDoType {
    id
    name
    complete
}

ToDoPrivateType {
    id
    name
    complete
    colorGroup
    createdAt
    ...other private properties
}

并访问 - 来自根查询user {...}和其他任何地方的ToDoType,除外 - viewer {...}我将使用ToDoPrivateType

它会起作用,但看起来有点像双重工作, 另外,如果我从标准todo lists根查询中检索user,我将无法为用户自己的用户提取私有属性。

2)我还可以提供对所有属性的访问权限,并设置为随机用户无法访问的null属性(如其他用户的createdAt),但它看起来也不正确。

希望我所要求的并不是太混乱。

  • 这些方法有意义吗?
  • 是否有更好的方法来控制对某些属性的访问?

谢谢!

0 个答案:

没有答案