Переменная Python GraphQL не определена - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь выполнить запрос 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)

Что я делаю не так?

1 Ответ

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

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

...