【问题标题】:Resolver to filter a non-scalar type in AppSync / Amplify在 AppSync / Amplify 中过滤非标量类型的解析器
【发布时间】:2019-09-02 13:18:22
【问题描述】:

我们正在使用 AWS Amplify。这是我的类型

type Package @model {
  id: ID!
  desc: String!
  company: Company! @connection
  servicetype: ServiceType! @connection
  price: Float!
  active: Boolean!
  createdAt: AWSDateTime
  updatedAt: AWSDateTime
}

Amplify 不会为 listPackage 生成过滤选项以允许过滤服务类型。我的理解是您需要为此添加自定义查询和解析器。我添加了一个查询 listPackageByServiceType 但对解析器感到困惑......无法让它工作。

我可以遵循类似的代码示例吗?我无法让过滤器选项正常工作。

【问题讨论】:

    标签: aws-appsync resolver


    【解决方案1】:

    如果您的 DynamoDB 表上有一个基于该字段 serviceType 的二级索引,您可以通过对该字段的查询来执行此操作。

    否则,要走的路可能是在该字段上使用过滤器进行扫描。更多信息请看这里:https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html#aws-appsync-resolver-mapping-template-reference-dynamodb-scan

    通过该链接,扫描映射模板将如下所示(请注意,根据您拥有的内容,可能需要分页):

    {
    "version" : "2017-02-28",
    "operation" : "Scan",
    "index" : "fooIndex",
    "filter" : {
        "expression" : "filter expression"
        "expressionNames" : {
            "#name" : "name",
        },
        "expressionValues" : {
            ":value" : ... typed value
        }
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-22
      • 2019-02-12
      • 2019-03-28
      • 2021-01-27
      • 2020-07-09
      • 2021-07-18
      • 2021-04-21
      • 2019-04-14
      相关资源
      最近更新 更多