首页 > 解决方案 > 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
  }
}

订阅被触发 - 这很好。但是,结果仅包含IDand __typename,而不包含body

{
  "data": {
    "onUpdatePost": {
      "id": "some-id",
      "__typename": "Post"
    }
  }
}

按照这里的指南,在body这些领域中应该就足够了。

我是否缺少此订阅设置的某些内容?

笔记:

标签: amazon-web-servicessubscriptionaws-appsync

解决方案


AWS AppSync 中的订阅作为对突变的响应被调用。订阅由突变触发,突变选择集发送给订阅者。

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

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

推荐阅读