Аргумент запроса GraphQL, который принимает пары ключ-значение? - PullRequest
0 голосов
/ 16 ноября 2018

Я бы хотел передать следующие пары ключ: значение в запрос 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!].

1 Ответ

0 голосов
/ 16 ноября 2018

, как говорится в сообщении, аргументы должны быть типа input. Измените свою схему на что-то вроде

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

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

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