【问题标题】:How to subscribe with filters?如何使用过滤器订阅?
【发布时间】:2019-07-28 21:16:45
【问题描述】:

订阅有没有办法接收输入过滤器作为类似于查询和变异的参数?

目前,我的订阅没有数据源,我只想在此字段以该值开头时接收订阅。

样本突变反应

{
  taskId: "personal-<uuid>",
  name: "Personal Task 1",
  ...
}

基本上,我只想订阅一个以检查taskId beginsWith String “个人”的所有任务更新。

架构

input TableStringFilterInput {
  ne: String
  eq: String
  le: String
  lt: String
  ge: String
  gt: String
  contains: String
  notContains: String
  between: [String]
  beginsWith: String
}

input TaskInput {
  taskId: ID!
  ...
}

input TaskFilterInput {
  taskId: TableStringFilterInput
}

mutation updateTask(task: TaskInput) :  Task
subscription onTaskUpdated(filter: TaskFilterInput) : Task
@aws_subscribe(mutations, ["updateTask"])

使用 Appsync 的查询控制台测试订阅

subscription TaskUpdated {
  onTaskUpdated(filter: {
    taskId : { beginsWith: "personal" },
  }) {
    taskId
    name
  }
}

【问题讨论】:

    标签: graphql aws-appsync aws-amplify


    【解决方案1】:

    https://docs.aws.amazon.com/appsync/latest/devguide/real-time-data.html

    你可以像这样传递参数

    subscription TaskUpdated {
        onTaskUpdated(taskCategory: "personal"){
            taskId
            taskCategory
            name
        }
    }
    

    如果可以将另一个属性 taskCategory 添加到任务类型...可能会解决您的问题。

    您的另一个选择是在您的应用中进行过滤

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 2020-03-03
      • 2019-08-14
      • 2022-10-13
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      相关资源
      最近更新 更多