Переменная Python GraphQL не определена

Я пытаюсь выполнить запрос GraphQL, содержащий некоторые переменные, с использованием клиента apollo-boost на сервере Flask + Flask-GraphQL + Graphene.

let data = await client.query({
  query: gql`{
    addItemToReceipt(receiptId: $receiptId, categoryId: $categoryId, value: $value, count: $count) {
      item {
        id
        category { id }
        value
        count
      }
    }
  }`,
  variables: {
    receiptId: this.id,
    categoryId: categoryId,
    value: value,
    count: mult
  }
})

Но я получаю ошибки «Переменная X не определена».

[GraphQL error]: Message: Variable "$receiptId" is not defined., Location: [object Object],[object Object], Path: undefined
[GraphQL error]: Message: Variable "$categoryId" is not defined., Location: [object Object],[object Object], Path: undefined
[GraphQL error]: Message: Variable "$value" is not defined., Location: [object Object],[object Object], Path: undefined
[GraphQL error]: Message: Variable "$count" is not defined., Location: [object Object],[object Object], Path: undefined
[Network error]: Error: Response not successful: Received status code 400

Я добавил несколько отладочных отпечатков на graphql_server/__init__.py

# graphql_server/__init__.py:62
all_params = [get_graphql_params(entry, extra_data) for entry in data]
print(len(all_params))
print(all_params[0])
# ...

Но из вывода, который я получаю, вроде все в порядке. graphql_server.run_http_query() принимает все переменные.

GraphQLParams(query='{\n  addItemToReceipt(receiptId: $receiptId, categoryId: $categoryId, value: $value, count: $count) {\n    item {\n      id\n      category {\n        id\n        __typename\n      }\n      value\n      count\n      __typename\n    }\n    __typename\n  }\n}\n', variables = {'receiptId': '13', 'categoryId': 'gt', 'value': 0, 'count': 0}, operation_name=None)

Что я делаю неправильно?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
1 271
1

Ответы 1

Я думаю, что это может быть ошибка самой библиотеки, если бы вы могли сообщить об этом как о проблеме с простым способом ее воспроизведения, было бы здорово!

Я разместил здесь проблему: github.com/graphql-python/graphql-server-core/issues/11

Niklas R 14.06.2018 21:30

Другие вопросы по теме