【问题标题】:Are AppSync's subscriptions very limited to one specific use case?AppSync 的订阅是否仅限于一个特定的用例?
【发布时间】:2018-07-12 21:28:24
【问题描述】:

我花了最后一天尝试AWS AppSync 我对订阅的功能有点失望。 在我看来,AppSync subscription 的当前状态适用于您拥有项目列表并希望它在所有客户端上同步的用例。

apollo-subscription 能做的相比,它相当有限。

如果我正确理解了文档:

  • 我们无法过滤出您要将数据发送给的目标

我有一些用例,比如对 Post 投票之类的突变可能导致仅将不同类型的数据推送给 Post 的所有者。

  • 必须与特定突变相关联,并且必须属于同一类型

我有一些用例,其中突变甚至查询可能导致向正在侦听事件的特定目标发送推送。

  • 未链接到解析器

如果我错了,你能纠正我吗?

【问题讨论】:

  • 非常感谢您的反馈!该服务仍处于预览阶段,未来几个月将推出与您的上述要求相关的更多功能。继续关注 AWS 移动博客以获取公告。
  • 明确一点:I love AWS AppSync! 我迫不及待地想要使用它。我只是希望所有这些功能都已经存在:D
  • 对于订阅的细粒度访问控制,您可以将解析程序附加到您的订阅字段并使用调用者的身份和 AWS AppSync 数据源执行逻辑。

标签: aws-appsync


【解决方案1】:

正如您已经知道的那样,结果必须与突变的结果相同,并且您不能将您的突变链接到解析器。

但是关于你的第一个假设:

可以过滤突变的结果。 例如,如果您有以下突变:

type Mutation {
  addPost(input: PostAddInput!): Post!
}

input PostAddInput {
  text: String!
  author: ID!
}

您可以通过此订阅将突变结果发布给特定用户:

type Subscription {
  addedPost(author_id: ID!): Post!
    @aws_subscribe(mutations: ["addPost"])
}

现在,只有当突变的 author_id 与订阅的 author_id 匹配时,您才会收到结果。

如果您想自己尝试一下,我还在 GitHub 上创建了 AppSync RDS repository

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-09
    • 2020-09-20
    • 2018-11-17
    • 2022-07-04
    • 2020-10-27
    • 2014-09-07
    • 2018-12-20
    • 2021-06-03
    相关资源
    最近更新 更多