首页 > 解决方案 > 接受键值对的 GraphQL 查询参数?

问题描述

我想将以下键:值对传递给 GraphQL 查询。我想象它像这样工作,但一直无法找到实现这一目标的方法。

query myPortfolio {
  portfolio(holdings: {"btc": 0.12, "ltc": 12.1}) {
    # ...
  }
}

我试图创建一个特殊类型并将其作为数组传递,但编译失败。

type Holding {
  coin: String!
  amount: Float!
}

type Query {  
  portfolio(holdings: [Holding!]): Portfolio!
}

Error: The type of Query.portfolio(holdings:) must be Input Type but got: [Holding!].

标签: graphqlapollo

解决方案


就像消息说的那样,参数需要是input类型的。将您的架构更改为类似

type Holding {
  coin: String!
  amount: Float!
}

input HoldingInput{
  coin: String!
  amount: Float!
}

type Query {  
  portfolio(holdings: [HoldingInput!]): Portfolio!
}

推荐阅读