0

我想通过发布请求启动流程运行。

curl -X POST \
-H "Content-Type: application/json" \
-d '{"query": "{ flow{id} }"}' \
http://localhost:4200/graphql

以上是与api的基本交互。

突变查询:

mutation {
  create_flow_run(
    input: {flow_id: "cabfecfb-8ce7-47aa-9ba4-c181dbf4a430", 
            parameters: "{ \"points_y_column\": \"lat\", \"points_x_column\": \"lon\", \"out_format\": \"CSV\"}"}
  ) {
    id
  }
}

此查询适用于 Graphq 界面。以“\”为前缀的参数中的引号。

我如何将查询放入字符串中。喜欢:

-d '{"query": "<my_mutation_query>"}'

Python 方法

headers = {"Content-Type": "application/json",
            'tenant_id': 'f874d20a-ba21-4c7f-1111-d43cbf4751e9'}

query = """mutation {
  create_flow_run(
    input: {flow_id: "cabfecfb-8ce7-47aa-9ba4-c181dbf4a430", 
            parameters: "{ \"points_y_column\": \"lat\", \"points_x_column\": \"lon\", \"out_format\": \"CSV\"}"}
  ) {
    id
  }
}"""
r = requests.post(req_url , json = {"query": query}, headers=headers)

我收到以下错误: b'{"errors":[{"message":"Syntax Error: Expected :, found String \\": \\"","locations":[{"line":4,"column":44}],"extensions":{"code":"GRAPHQL_PARSE_FAILED"}}]}\n'

4

1 回答 1

0

我只是将所有内容都推入变量字典并在最后阶段进行编码。我的错误是将编码的 json 作为字符串埋入字典中。

url = 'http://localhost:4200/'   
query = '''
mutation ($flow_id: UUID! , $parameters: JSON!) {
  create_flow_run(input : { flow_id: $flow_id,  parameters: $parameters}) {
    id
  }
}
'''
json_params = { "random_array_lenght": 5}
flow_id = "eb8e2f91-bfef-487d-bde1-741bdcb6256c"
variables= {"flow_id":flow_id , "parameters": json_params}
variables = json.dumps(variables).encode('utf-8')
request = requests.post(url, json={'query': query, 'variables': variables}, headers=headers)

于 2021-09-13T06:38:39.047 回答