您将如何使用AWS Amplify Model Transforms处理接口并将其用于数据模型中的连接?
interface User @model {
id: ID
email: String
created: AWSTimestamp
}
type ActiveUser implements User {
id: ID
first: String
last: String
email: String
created: AWSTimestamp
}
type InvitedUser implements User {
id: ID
email: String
created: AWSTimestamp
invitedBy: String
}
type Team @model {
users: [User] @connection
}
似乎我的选择是将@ model放在类型上,但是一旦运行放大更新api,我便得到了单独的Dynamo表和查询查询。
变压器是否可以支持此处记录的接口:https://docs.aws.amazon.com/appsync/latest/devguide/interfaces-and-unions.html
我还找到了一些支持通知单,但想知道是否有任何东西可以启用此功能。这是我发现的支持票:
您仅使用@connection
将两个数据库链接在一起(它们必须由type
而非interface
组成),因此,如果您不想这样做,则只需删除@connection
和团队数据库将仅使用户属于[User]类型。我并不是您想要做的完全,但我会做类似的事情:
type User @model {
id: ID
first: String!
last: String!
email: String!
created: AWSTimestamp
isActive: boolean
invitedBy: String
team: Team @connection(name: "UserTeamLink")
}
type Team @model {
users: [User!] @connection(name: "UserTeamLink")
}
创建新用户时,字段的第一,最后和电子邮件是必填字段,您可以区分具有布尔值的活动用户,查询User数据库时,它也会从Team数据库中返回Team项目(我猜想您还需要其他字段,例如团队名称等吗?),因此当您创建Team对象时,您需要传入teamUserId(未在下方显示,但在使用放大时创建),以允许您将新创建的Team附加到现有用户或用户组。