“ aws appsync graphql”预期的JSON对象为“ $ [过滤器]”,但改为使用“ STRING”。

时间:2019-11-02 21:52:07

标签: amazon-web-services graphql amazon-dynamodb aws-appsync

我正在尝试根据graphql上的孩子的ID过滤结果,并收到以下错误:

  

“预期的JSON对象为“ $ [过滤器]”,但改为使用“ STRING”。”

大多数代码是由awsmplify生成的。

架构

type Company {
    id: ID!
    name: String!
    disabled: Int
}

type Customer {
    id: ID!
    name: String!
    company: Company!
    disabled: Int
}

input ModelCustomerFilterInput {
    id: ModelIDFilterInput
    name: ModelStringFilterInput
    disabled: ModelIntFilterInput
    company: ModelCompanyFilterInput #added by me
    and: [ModelCustomerFilterInput]
    or: [ModelCustomerFilterInput]
    not: ModelCustomerFilterInput
}

input ModelCompanyFilterInput {
    id: ModelIDFilterInput
    name: ModelStringFilterInput
    disabled: ModelIntFilterInput
    and: [ModelCompanyFilterInput]
    or: [ModelCompanyFilterInput]
    not: ModelCompanyFilterInput
}

查询

query ListCustomers($filter: ModelCustomerFilterInput, $limit: Int, $nextToken: String) {
  listCustomers(filter: $filter, limit: $limit, nextToken: $nextToken) {
    __typename
    items {
      __typename
      id
      name
      company {
        __typename
        id
        name
        disabled
      }
      disabled
    }
    nextToken
  }
}

{"filter": {"company": {"id": {"eq": "example"}}}}

1 个答案:

答案 0 :(得分:0)

已经解决了我的问题。

我所做的就是以公司包含客户的方式更改架构本身。 实际上,问题在于架构的设计不正确。

我真的很想在graphql中看到一个查找功能,但可能不是为它设计的。