我正在使用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表Recipe
和Course
阅读了很多教程后,我仍然不知道如何在GraphiQL中添加配方。
如何插入具有课程参考的新配方并避免在课程表中重复?
要在Recipe
表中创建引用相同Course
且没有重复项的倍数Course
,您需要设计多对多关系。
到目前为止,您设计的关系不足以让AppSync理解,您缺少@connection
属性。您可以阅读this answer on github,了解如何在AppSync中设计这种多对多关系
设计关系后,您将使用突变来插入数据,AppSync可能会为您生成突变代码(如果没有,请在控制台中使用amplify codegen
)。然后,您就可以创建数据。
由于您将DynamoDB与多个表一起使用(放大/ AppSync的默认模式),您必须: