我无法通过GraphQL和Python请求发布变异。
我的功能如下:
def create(request):
access_token = 'REDACTED'
headers = {
"X-Shopify-Storefront-Access-Token": access_token
}
mutation = """
{
checkoutCreate(input: {
lineItems: [{ variantId: "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0VmFyaWFudC80", quantity: 1 }]
}) {
checkout {
id
webUrl
lineItems(first: 5) {
edges {
node {
title
quantity
}
}
}
}
}
}
"""
data = (requests.post('https://catsinuniform.myshopify.com/api/graphql', json={'mutation': mutation}, headers=headers).json())
print(data)
return render(request, 'Stock/create.html', { 'create': data })
我收到错误消息,说我的json响应中有一个错误的请求“ bad_request-参数丢失或无效”。
答案 0 :(得分:2)
即使您发送突变,您的请求主体仍应包含查询属性,其属性值应为代表您的操作的字符串。这有点令人困惑,但是非正式地,查询和变异都称为“查询”(您仍然以任何一种方式“查询”服务器)。将您的请求更改为:
requests.post('https://catsinuniform.myshopify.com/api/graphql', json={'query': mutation}, headers=headers)