对python代码进行graphQL变异,得到

2024-04-28 21:12:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从python对shoppify商店进行一个突变。 我是graphQL新手,我已经能够使用graphiQL进行变异,但我不确定如何直接从代码中执行。在

这是我的makequery文件,它成功地用于一个简单的查询

`import requests 
 def make_query(self, query, url, headers):
    """
    Return query response
    """
    request = requests.post(url, json={'query': query}, headers=headers)
    if request.status_code == 200:
        return request.json()
    else:
        raise Exception("Query failed to run by returning code of {}. {}".format(request.status_code, query))`

graphiQL中的变异示例如下:

"mutation {customerCreate(input: {email: 'wamblamkazam@send22u.info', password: 'password'}) {userErrors { field message}customer{id}}}"

但是当我把它传递到make\u查询函数时,它给出了这个错误

^{pr2}$

我怎么解决这个问题? 另外,我正在进行的一个突变使用了变量,我还没能从我的代码中找到一个如何直接执行此操作的示例


Tags: 代码jsonurl示例makerequeststatuscode
1条回答
网友
1楼 · 发布于 2024-04-28 21:12:16

GraphQl提供了一种以JSON格式发送数据的方法。您可以在查询中使用变量,并将JSON对象作为变量值发送:

def make_query(self, query, variables, url, headers):
    """
    Make query response
    """
    request = request.post(url, json={'query': query, 'variables': variables}, headers=headers)
    if request.status_code == 200:
        return request.json()
    else:
        raise Exception("Query failed to run by returning code of {}. {}".format(request.status_code, query))

查询如下:

^{pr2}$

您还可以使用一个刚刚发现的小型库a,如下所示:

client = GraphQLClient('http://127.0.0.1:5000/graphql')

query = """
mutation CreateCustomer($input:CustomerInput){
    customerCreate(customerData: $input){
        customer{
            name
        }
    }
}
"""

variables = {'input': customer}

client.execute(query, variables)

相关问题 更多 >