嵌套变异GraphQL

问题描述 投票:0回答:1

我正在使用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表RecipeCourse

阅读了很多教程后,我仍然不知道如何在GraphiQL中添加配方。

如何插入具有课程参考的新配方并避免在课程表中重复?

graphql aws-amplify
1个回答
2
投票

要在Recipe表中创建引用相同Course且没有重复项的倍数Course,您需要设计多对多关系。

到目前为止,您设计的关系不足以让AppSync理解,您缺少@connection属性。您可以阅读this answer on github,了解如何在AppSync中设计这种多对多关系

设计关系后,您将使用突变来插入数据,AppSync可能会为您生成突变代码(如果没有,请在控制台中使用amplify codegen)。然后,您就可以创建数据。

由于您将DynamoDB与多个表一起使用(放大/ AppSync的默认模式),您必须:

  • 连续调用多个突变
  • 使用自定义解析器,如this SO answer中所述
© www.soinside.com 2019 - 2024. All rights reserved.