AWS AppSync-订阅突变不会返回所需字段

时间:2018-10-02 19:11:36

标签: amazon-web-services subscription aws-appsync

我尝试在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的工作原理是,可以在幕后的表格中更新正文。
  • 我没有在订阅条目上附加解析器,但是其中一个用于更改。应该是这样afaik。

1 个答案:

答案 0 :(得分:4)

AWS AppSync中的订阅将作为对突变的响应而调用。订阅是由突变触发的,code, project, exception发送给订阅者。

我怀疑您没有在body突变选择集中返回updatePost。添加该字段,订阅中将包含body,例如

mutation {
  updatePost(input: { id: "some-id" }) {
    id
    body
  }
}