嵌套变异 GraphQL
Nested mutation GraphQL
我正在使用 AWS Appsync 和 Amplify。
我的 GraphQL 模式片段如下所示:
type Recipe
@model
@auth(rules: [{allow: owner}])
{
id: ID!
title: String!
key: String!
courses: [Course!]!
}
type Course
@model
@auth(rules: [{allow: owner}])
{
id: ID!
name: String!
}
在放大推送时,它会创建 DynamoDB tables Recipe
和 Course
看了很多教程后,我还是不明白如何在 GraphiQL 中添加食谱。
我如何插入引用课程的新食谱并避免课程中的重复 table?
要在 Course
table 中创建引用相同 Course
的多个 Recipe
而没有重复项,您需要设计多对多关系。
到目前为止,您设计的关系不足以让 AppSync 理解,您缺少 @connection
属性。您可以阅读 this answer on github 以了解如何在 AppSync
中设计这种多对多关系
设计关系后,您将使用突变插入数据,AppSync 很可能会为您生成突变代码(如果没有,请在控制台中使用 amplify codegen
)。然后您将能够创建数据。
由于您将 DynamoDB 与多个 table 一起使用(放大/AppSync 的默认模式),您将不得不:
- 连续调用多个突变
- 使用自定义解析器,如
中所述
我正在使用 AWS Appsync 和 Amplify。 我的 GraphQL 模式片段如下所示:
type Recipe
@model
@auth(rules: [{allow: owner}])
{
id: ID!
title: String!
key: String!
courses: [Course!]!
}
type Course
@model
@auth(rules: [{allow: owner}])
{
id: ID!
name: String!
}
在放大推送时,它会创建 DynamoDB tables Recipe
和 Course
看了很多教程后,我还是不明白如何在 GraphiQL 中添加食谱。
我如何插入引用课程的新食谱并避免课程中的重复 table?
要在 Course
table 中创建引用相同 Course
的多个 Recipe
而没有重复项,您需要设计多对多关系。
到目前为止,您设计的关系不足以让 AppSync 理解,您缺少 @connection
属性。您可以阅读 this answer on github 以了解如何在 AppSync
设计关系后,您将使用突变插入数据,AppSync 很可能会为您生成突变代码(如果没有,请在控制台中使用 amplify codegen
)。然后您将能够创建数据。
由于您将 DynamoDB 与多个 table 一起使用(放大/AppSync 的默认模式),您将不得不:
- 连续调用多个突变
- 使用自定义解析器,如