AppSync-使用数组和对象创建嵌套变异吗?

时间:2019-05-22 23:13:51

标签: amazon-web-services graphql aws-appsync

AppSync是否支持嵌套单突变?

我想调用一个突变,它将把记录插入到两个表中,例如:DynamoDB中的UserRoles表。

例如这样的事情:

createUser(
   input: {
      Name: "John"
      Email: "user@domain.com"
      LinesRoles: [
        { Name: "Role 1" }
        { Name: "Role 2" }
      ]
   }) {
        Id
        Name
        LinesRoles {
          Id
          Name
        }
      }

我是否需要在AppSync中为UserRoles创建两个解析器才能在两个表中插入记录?

1 个答案:

答案 0 :(得分:1)

我可以想到三种实现此目的的方法:

  1. 使用BatchPutItem将记录一次保存到两个表中。但是,您将无法使用任何ConditionExpression
  2. pipeline resolver与两个AppSync函数一起使用,其中一个函数将PutItem放置到Roles表中,另一个函数将User表中的内容放入PutItem。但是,您需要对可能在记录已插入一个表中而不是另一个表中插入的可能不一致的情况感到满意。
  3. 使用Lambda解析器对DynamoDB事务内的2个表进行写操作。