我正在使用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中添加食谱。
如何插入带有课程参考的新食谱,并在“课程”表中避免重复?
答案 0 :(得分:1)
要在Recipe
表中创建引用同一Course
且没有重复的多个Course
,则需要设计多对多关系。
到目前为止,您设计的关系还不足以让AppSync理解,您缺少了@connection
属性。您可以阅读this answer on github来获得有关如何在AppSync中设计这种多对多关系的说明
在设计了关系之后,您将使用一个变异来插入数据,并且AppSync可能会为您生成变异代码(如果没有,则在控制台中使用amplify codegen
)。然后,您将能够创建数据。
由于您将DynamoDB与多个表一起使用(默认模式为amplify / AppSync),因此您将必须: