При запросе плавающего GraphQL, что представляет собой второй аргумент? - PullRequest
0 голосов
/ 01 июня 2018

Я делаю следующий запрос в GraphQL:

{
  metal(silver_bid_usd_toz: 1) {
    silver_bid_usd_toz
  }
}

, который возвращает

{
  "data": {
    "metal": {
      "silver_bid_usd_toz": 16.45
    }
  }
}

Объект JSON, возвращаемый API, является плоским:

{
  silver_bid_usd_toz: 123,
  gold_bid_usd_toz: 123,
  copper_bid_usd_toz: 123
}

Я не понимаю, что означает int 1 в моем запросе graphql metal(silver_bid_usd_toz: 1)

Неважно, на что я его изменяю, это может быть 1 или 355, но это необходимо длязапрос на работу.Почему я не могу просто сделать

{
  metal(silver_bid_usd_toz) {
    silver_bid_usd_toz
  }
}

Моя схема выглядит так:

 module.exports = new GraphQLSchema({
  query: new GraphQLObjectType({
    name: 'Query',
    description: '...',
    fields: () => ({
      metal: {
        type: MetalType,
        args: {
          gold_bid_usd_toz: { type: GraphQLFloat },
          silver_bid_usd_toz: { type: GraphQLFloat }
        },
        resolve: (root, args) => fetch(
          `api_url`
        )
        .then(response => response.json())
      }
    })
  })
});

1 Ответ

0 голосов
/ 01 июня 2018

Вы передаете silver_bid_usd_toz в качестве аргумента для поля, но, очевидно, вы не используете его в функции разрешения, поэтому оно игнорируется.

Кажется, это причина того, что результат всегдаТо же самое при изменении значения аргумента.

Но странно, когда вы говорите, что он необходим для работы запроса, поскольку он не определен как тип GraphQLNonNull.В соответствии с Схемой, которую вы нам передали, должна быть возможность запрашивать это поле без передачи аргумента.

...