AWS AppSync - подписка на мутацию не возвращает нужные поля - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь подписаться на мутации в таблице DynamoDB в AWS AppSync.Схема вкратце выглядит следующим образом:

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"])
}

Учитывая идентификатор сообщения, когда я хочу получить изменения в теле этого сообщения, я попытался использовать эту подписку выше как:

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"
    }
  }
}

Наличие body среди полей должно быть достаточно, следуя руководству здесь .

Я что-то упустил при этой настройке подписки?

Примечание:

  • Работает mutationто есть тело может быть обновлено в таблице за кулисами.
  • Я не прикрепил распознаватель к записи подписки, но есть один для мутации.Так и должно быть, афаик.

1 Ответ

0 голосов
/ 02 октября 2018

Подписки в AWS AppSync вызываются как ответ на мутацию.Подписки запускаются из-за мутаций, и набор выбора мутаций отправляется подписчикам.

Я подозреваю, что вы не возвращаете body в своем наборе updatePost выбора мутаций.Добавьте это поле, и подписка будет содержать body например

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