我尝试在AWS AppSync的DynamoDB表中订阅突变。该模式简要如下:
type Post {
id: ID!
userId: String!
title: String
body: String!
}
input UpdatePostInput {
id: ID!
title: String
body: String
}
type Mutation {
updatePost(input: UpdatePostInput!): Post
}
type Subscription {
onUpdatePost(id: ID!): Post
@aws_subscribe(mutations: ["updatePost"])
}
鉴于该帖子的ID,当我想更改该帖子的正文时,我尝试将上述订阅用作:
subscription OnUpdatePost {
onUpdatePost(id: "some-id") {
id
body ## This line should make the trick, but it does not
}
}
已取消订阅-很好。但是,结果仅包含ID
和__typename
,不包含body
:
{
"data": {
"onUpdatePost": {
"id": "some-id",
"__typename": "Post"
}
}
}
遵循指南here,字段之间body
就足够了。
此订阅设置是否缺少某些内容?
注意:
mutation
的工作原理是,可以在幕后的表格中更新正文。答案 0 :(得分:4)
AWS AppSync中的订阅将作为对突变的响应而调用。订阅是由突变触发的,code, project, exception发送给订阅者。
我怀疑您没有在body
突变选择集中返回updatePost
。添加该字段,订阅中将包含body
,例如
mutation {
updatePost(input: { id: "some-id" }) {
id
body
}
}