【发布时间】:2019-02-08 14:03:40
【问题描述】:
您好,我是 aws AppSync 和 GraphQl 的新手。我有订阅问题。我想在发布新帖子时实时收到通知
这是我的 graphql 架构 ``
type Mutation {
addPost(
id: ID!,
author: String!,
title: String,
contennt: String,
url: String
): Post!
updatePost(
id: ID!,
author: String!,
title: String,
content: String,
ups: Int!
): Post!
deletePost(id: ID): Post!
}
type Post {
id: ID!
author: String!
title: String!
url: String
content: String
ups: Int!
}
type Query {
allPost: [Post]
getPost(id: ID!): Post
}
type Subscription {
newPost: Post
@aws_subscribe(mutations: ["addPost"])
}
schema {
query: Query
mutation: Mutation
subscription: Subscription
}
``
这是我的潜艇查询:
subscription NewPostSub{
newPost{
__typename
title
content
author
url
}
}
我收到错误,提供的关键元素与模式不匹配,在 dynamodb 表中 pk 是 id 并且我生成了映射模板。 谢谢
【问题讨论】:
-
我需要更多信息来提供帮助。您能否提供 Mutation.addPost 突变的请求和响应映射模板。如果您在 Subscription.newPost 字段上有解析器,请也提供这些解析器。订阅查询不应该关心您的 DynamoDB 架构,所以我怀疑这个错误实际上来自突变。如果您有更多信息,请告诉我。
-
您好,这里是 addPost 突变的请求:{ "version" : "2017-02-28", "operation" : "PutItem", "key" : { $util.dynamodb.toDynamoDBJson($ ctx.args.id) "id": $util.dynamodb.toDynamoDBJson($util.autoId()), }, "attributeValues" : $util.dynamodb.toMapValuesJson($ctx.args) } 这里是响应:$ util.toJson($ctx.result) 这里用于订阅:{ "version": "2017-02-28", "operation": "GetItem", "key": { "id": $util.dynamodb.toDynamoDBJson ($ctx.args.id), } } 这里是响应:$util.toJson($ctx.result) 谢谢@mparis
标签: graphql aws-appsync graphql-subscriptions