刚接触 GraphQL、Amplify、AppSync 等,在尝试订阅 onUpdate 事件时遇到问题。
我将“API”库添加到我的 Amplify 项目中,并通过 API key 进行身份验证。我可以通过 Postman 成功发送突变(updatePurchaseOrder)请求,订阅监听器注册更新,但除了更新记录的 id 之外,返回的数据均为空。
screenshot in the AppSync console
这里的状态字段为空,我希望看到新的更新值。这是预期的行为吗?
定义的类型:
type PurchaseOrder @model @auth(rules: [ { allow: public } ] ){
id: ID!
name: String!
description: String!
user: String
time: String
file: String!
status: String
}
从初始类型定义创建的架构突变和订阅尚未更改:
type PurchaseOrder {
id: ID!
name: String!
description: String!
user: String
time: String
file: String!
status: String
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
}
type Mutation {
updatePurchaseOrder(input: UpdatePurchaseOrderInput!, condition: ModelPurchaseOrderConditionInput): PurchaseOrder
}
input UpdatePurchaseOrderInput {
id: ID!
name: String
description: String
user: String
time: String
file: String
status: String
}
type Subscription {
onUpdatePurchaseOrder: PurchaseOrder
@aws_subscribe(mutations: ["updatePurchaseOrder"])
}
我尝试在浏览器中登录控制台并看到返回相同的空对象。我认为通过 AppSyncConsole 进行监听会更不容易出错,但我仍然看到相同的结果。
最佳答案
找出我出错的地方...我需要在 POST 查询中指定我想要的响应字段(例如:
mutation updatePurchaseOrder {
updatePurchaseOrder(input: {status: "Pending", id: "53a98236-7b64-428c-93ea-2fae5228c0ef"}) {
id
**status**
}
)
“status”原本不在查询响应参数中。订阅响应将仅包含查询本身中突变响应的一部分的字段。
关于graphql - AWS AppSync GraphQL 订阅在事件上返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74883217/