我了解枚举不是Dynamo中的标准类型:https://forums.aws.amazon.com/thread.jspa?messageID=836386
然而,这里的确切分辨率是多少? 我们应该如何恰当地表示与生成的代码的关系?
- 我错过了什么或生成的代码是否正确,我们需要在dynamo表中创建一些自定义字段然后重写查询?
示例:
type Competition {
id: ID!
name: String!
creator: UserProfile!
startDate: String!
endDate: String!
competitionType: CompetitionType!
competitors: [UserProfile]!
prize: Prize!
}
比赛由用户创建,有类型,奖品,并且有竞争对手。当此表的create resources
时,代码显然缺少从自定义类型或枚举中派生的任何信息。复杂的模式总是有这种类型的结构,所以我对输出的代码和正确的方向有点困惑。
extend type Mutation {
createCompetition(input: CreateCompetitionInput!): Competition
}
input CreateCompetitionInput {
id: ID!
name: String!
startDate: String!
endDate: String!
## Missing info
}
答案 0 :(得分:1)
当AppSync自动生成架构时,它会跳过这些架构,因为它们打算通过其他解析器手动添加。您可以定义附加到每个自定义字段或枚举字段的新查询,但是您引用的数据需要标记竞争对手独有的内容,以便可以查询与此类型相关的内容(因为dynamoDB不是关系数据库)。
在创建新比赛时,您需要使用该比赛独有的内容更新子字段。即需要作为竞争对手进行跟踪的每个UserProfile都会加盖此竞赛ID。每个自定义字段的突变需要单独处理。
本文帮助我解决了同样的问题:https://keyholesoftware.com/2018/05/17/go-forth-and-appsync/。