从另一个变异中调用GraphQL变异?

问题描述 投票:10回答:2

是否有可能在突变中对另一个graphqlType进行突变?我不确定这是不是一个好主意。理想情况下,为每个graphql数据类型创建突变然后在需要时调用每个函数会很好。希望这会使事情变得更加干燥。

例如,我有2个graphql类型“projects”和“rooms”。对于每个项目,都需要创建一个房间,并将ID放在项目中以供日后参考。

I see 3 ways of doing this:

  • 从前端开始,运行2个不同的graphql查询(用于新项目和新房间),最后一个用新房间ID更新项目。
  • 在后端/ graphql服务器上。为简单起见,只需处理一个解析函数内的所有db调用,返回项目和创建的房间。
  • 在突变中运行突变。从项目创建函数调用房间创建函数,并返回两个数据集。

还在用graphql学习绳索,所以任何关于什么是良好实践的见解都会很棒。

javascript graphql
2个回答
2
投票

我很确定你很久以前就找到了解决问题的方法,但为什么不做一个能够捕获整个过程的变异,比如createProjectAndRoom?我认为将GraphQL解析器视为非常严格地映射到单个模型上的单个操作是错误的。


0
投票

最常见的方法是使用afterInsert(或类似命名的)钩子。因此,在这种情况下,在创建“房间”之后,在插入后挂钩期间创建“项目”。

© www.soinside.com 2019 - 2024. All rights reserved.