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

vah*_*det 2 subscription amazon-web-services 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"])
}
Run Code Online (Sandbox Code Playgroud)

给定帖子的ID,当我想获取帖子正文中的更改时,我尝试将上述订阅用作:

subscription OnUpdatePost {
  onUpdatePost(id: "some-id") {
    id
    body ## This line should make the trick, but it does not
  }
}
Run Code Online (Sandbox Code Playgroud)

订阅被触发-很好。但是,结果ID__typenamebody包含,不包含

{
  "data": {
    "onUpdatePost": {
      "id": "some-id",
      "__typename": "Post"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

拥有body该领域中应该足够以下指导这里

我是否缺少此订阅设置?

注意:

  • mutation工程即身体可以在幕后的表进行更新。
  • 我没有在订阅条目上附加解析器,但是有一个用于解析的变量。afaik应该就是这种方式。

Roh*_*nde 7

调用AWS AppSync中的订阅作为对突变的响应。从突变触发订阅,并将突变选择集发送给订户。

我怀疑你是不是回到body你的updatePost突变选择集。添加该字段,订阅将包含body例如

mutation {
  updatePost(input: { id: "some-id" }) {
    id
    body
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 就是这样,完美!我从未想过其他客户的行为会直接影响到这一点。 (2认同)
  • 一种恶意的 AppSync 突变会破坏所有订阅?这里的最佳实践是什么? (2认同)