AppSync - 使用数组和对象创建嵌套突变?
AppSync - creating nested mutation with array and objects?
AppSync 是否支持嵌套单突变?
我想调用一个将记录插入到两个表中的单一突变,例如:DynamoDB 中的 User
和 Roles
表。
例如这样的事情:
createUser(
input: {
Name: "John"
Email: "user@domain.com"
LinesRoles: [
{ Name: "Role 1" }
{ Name: "Role 2" }
]
}) {
Id
Name
LinesRoles {
Id
Name
}
}
我是否需要在 AppSync 中为 User
和 Roles
创建两个解析器以在两个表中插入记录?
我可以想到三种方法来实现这一点:
- 使用 BatchPutItem 一次将记录保存到两个 table 中。但是,您将无法使用任何
ConditionExpression
- 将 pipeline resolver 与两个 AppSync 函数一起使用,其中一个函数将 PutItem 发送到
Roles
table,另一个将 PutItem 发送到 User
table。但是,您需要接受可能不一致的情况,即记录已插入一个 table 而不是另一个。
- 使用 Lambda 解析器在 DynamoDB 事务中写入 2 tables。
AppSync 是否支持嵌套单突变?
我想调用一个将记录插入到两个表中的单一突变,例如:DynamoDB 中的 User
和 Roles
表。
例如这样的事情:
createUser(
input: {
Name: "John"
Email: "user@domain.com"
LinesRoles: [
{ Name: "Role 1" }
{ Name: "Role 2" }
]
}) {
Id
Name
LinesRoles {
Id
Name
}
}
我是否需要在 AppSync 中为 User
和 Roles
创建两个解析器以在两个表中插入记录?
我可以想到三种方法来实现这一点:
- 使用 BatchPutItem 一次将记录保存到两个 table 中。但是,您将无法使用任何
ConditionExpression
- 将 pipeline resolver 与两个 AppSync 函数一起使用,其中一个函数将 PutItem 发送到
Roles
table,另一个将 PutItem 发送到User
table。但是,您需要接受可能不一致的情况,即记录已插入一个 table 而不是另一个。 - 使用 Lambda 解析器在 DynamoDB 事务中写入 2 tables。