#python #graphql #gql
#python #graphql #gql
Вопрос:
У меня есть базовый запрос graphql в виде строки, который выполняется, как и ожидалось, прежде чем я попытаюсь его изменить и добавить входные переменные (запрос длинный, поэтому я включу только начало запроса, в который нужно вставить переменную)
query {
vessels {
pageInfo {
hasNextPage
endCursor
}
nodes {
...
Это работает и возвращает ожидаемый ответ:
try:
response = client.execute(gql(query))
except BaseException as e:
logger.error(e)
raise
Схема позволяет запрашивать конкретные сосуды, поэтому я последовал примеру в документации gql здесь, чтобы ввести список переменных
query {
vessels (mmsi: $code ) {
pageInfo {
hasNextPage
endCursor
}
nodes {
...
Однако это не работает и выдает ошибку:
params = {"code": [775903449, 775982824]}
try:
response = client.execute(gql(query), variable_values=params)
except BaseException as e:
logger.error(e)
raise
graphql.error.base.GraphQLError: Variable "$code" is not defined.
Что я здесь делаю не так со вставкой / заменой переменной в строку запроса? Любая помощь будет оценена!
Ответ №1:
Могу ответить на свой собственный вопрос — нужно определить переменную в первой части запроса!
query ($code: [MMSI!]) {
vessels (mmsi: $code ){
pageInfo {
hasNextPage
endCursor
}
nodes {