如何使用python调用具有Cognito身份验证的AppSync突变?

时间:2019-06-05 21:04:19

标签: python graphql amazon-cognito aws-appsync

是否可以使用Python使用Cognito身份验证来调用AppSync突变?怎么样?

我正在尝试使用boto3,但没有找到执行graphql操作的方法。

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/appsync.html

1 个答案:

答案 0 :(得分:1)

您可以将API身份验证模式设置为“ API KEY”,并使用http调用AppSync突变。

例如。

import requests
import json

APPSYNC_API_KEY = 'da2-xxxxxxxxxxxxx'
APPSYNC_API_ENDPOINT_URL = 'https://xxxxxxxxxxxxx.appsync-api.us-west-2.amazonaws.com/graphql'

headers = {
    'Content-Type': "application/graphql",
    'x-api-key': APPSYNC_API_KEY,
    'cache-control': "no-cache",
}

def execute_gql(query):
    payload_obj = {"query": query}
    payload = json.dumps(payload_obj)
    response = requests.request("POST", APPSYNC_API_ENDPOINT_URL, data=payload, headers=headers)
    return response

想象一下,您有一个名为Items的模型,您可以像下面这样轻松地进行查询:

if __name__ == '__main__':
    print(execute_gql("query { listItems { items { id name } } }").json())

只需用突变操作替换字符串。