Shopify GraphQL-запрос - PullRequest
       5

Shopify GraphQL-запрос

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

Я не вижу, как отформатировать этот запрос графена для shopify. Мне нужно повторить этот запрос curl с графеном в Django:

    curl -X POST \
"https://<shop>.myshopify.com/api/graphql" \
-H "Content-Type: application/graphql" \
-H "X-Shopify-Storefront-Access-Token: <storefront-access-token>" \
-d '
{
  shop {
    collections(first: 5) {
      edges {
        node {
          id
          handle
        }
      }
      pageInfo {
        hasNextPage
      }
    }
  }
}
'

Пока у меня есть:

access_token = 'some_token'
    headers = (
        { "Content-Type": "application/graphql" },
        { "X-Shopify-Storefront-Access-Token": access_token},
    )
    schema = graphene.Schema(query=Query)
    print(schema)
    result = schema.execute('{
        catsinuniform {
            collections(first: 5) {
              edges {
                node {
                  id
                  handle
                }
              }
              pageInfo {
                hasNextPage
              }
            }
        }'')
    print(result.data['catsinuniform'])

Этот синтаксис неверен для графена, но я не понимаю, как он должен выглядеть? Как только я получу данные в нужном формате, я смогу отправить сообщение с запросом, чтобы получить необходимую информацию из shopify storefrontapi

1 Ответ

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

Graphene - это реализация спецификации GraphQL для Python, предназначенная для создания и выполнения вашей собственной схемы GraphQL. Это не клиент GraphQL для отправки запросов на существующие серверы GraphQL. Вы можете совершать вызовы API-интерфейса Shopify, используя любую обычную библиотеку HTTP, например, requests, или вы можете использовать что-то вроде gql . Простой пример:

import requests

access_token = <YOUR TOKEN>
headers = {
    "Content-Type": "application/graphql",
    "X-Shopify-Storefront-Access-Token": access_token
}

query = """
{
  shop {
    collections(first: 5) {
      edges {
        node {
          id
          handle
        }
      }
      pageInfo {
        hasNextPage
      }
    }
  }
}
"""

request = requests.post('https://<YOUR SHOP>.myshopify.com/api/graphql', json={'query': query}, headers=headers)
result = request.json()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...