如何在graphql变异中设置多对多关系?

vgr*_*afe 5 apollo graphql react-apollo

我可能遗漏了一些东西,但在创建新条目时无法找到关于设置多对多关系的方式的Apollo文档的任何信息.

当关系是一对多时,它就像在多方对象中设置关系的一侧的ID一样简单.

但是我们假装我正在使用书籍和作者,我将如何编写一个graphql查询,为一个(或多个?)作者创建一本书?

vin*_*nce 5

这可能应该在GraphQL服务器上的API层(即架构)上发生。对于多对多关系,应具有“联接”类型以表示BookAuthor多对多关系,然后将条目添加到该联接类型。

从本质上讲,您将有一个名为的类型Book,另一个名为的类型Author,最后还有一个名为的类型BookAuthor。您可以添加一些变体来管理这种关系。也许...

  • addToBookAuthorConnection
  • updateBookAuthorConnection
  • removeFromBookAuthorConnection

这是使用符合中继规范的API的常规设置。您可以在此处阅读有关如何为多对多关系构建API的更多信息

然后,您只需addToBookAuthorConnection要从Apollo 调用变异,即可在前端添加到多对多连接。

希望这可以帮助!

  • 知道了!GraphiQL是一个很好的工具,可以深入了解您的API并查看存在的内容。希望现在的关系更加清楚。如果您有空,还应该签出[Scaphold](https://scaphold.io)! (2认同)