AppSync/Amplify - 如何定义 GraphQL 订阅
Posted
技术标签:
【中文标题】AppSync/Amplify - 如何定义 GraphQL 订阅【英文标题】:AppSync/Amplify - how to define GraphQL subscriptions 【发布时间】:2019-04-14 18:34:06 【问题描述】:我正在使用 Amplify 自动生成查询、突变和订阅。我有这种类型:
type Message @model
id: ID!
author: User @connection(name: "UserMessages")
content: String
如何使用 Amplify 生成的架构将 authorID 作为过滤器添加到新消息订阅?
【问题讨论】:
【参考方案1】:您可以添加自己的订阅字段,根据需要进行参数化。
试试这个
# Add the authorId explicitly and turn off the generated subscriptions.
type Message @model(subscriptions: null)
id: ID!
author: User @connection(name: "UserMessages")
authorId: String
content: String
type Subscription
onCreateMessage(authorId: String!): Message @aws_subscribe(mutations: "createMessage")
订阅的客户端仅获取订阅查询中提供的 authorId 的消息:
subscription SubscribeToNewMessages($id: String!)
onCreateMessage(authorId: $id)
id
authorId
content
【讨论】:
感谢您的回答,效果很好。我想没有办法直接在author
字段中使用id
进行订阅,而是我们必须添加一个额外的参数authorId?
我认为mutations: "createMessage"
应该是mutations: ["createMessage"]
。没有括号,我无法让它工作。以上是关于AppSync/Amplify - 如何定义 GraphQL 订阅的主要内容,如果未能解决你的问题,请参考以下文章
AppSync/Amplify Query using a Parameter Error ""FieldUndefined 类型的验证错误:"
Graphql - 无权访问来自 AWS AppSync Amplify 控制台的错误消息
如何在SWCON的extconf.rb中正确包含库路径和其他标志?