Страница запросов Appsyn c на самом деле представляет собой сочетание нескольких вещей вместе. Вы не можете выдавать запросы из CLI в соответствии с (https://docs.aws.amazon.com/cli/latest/reference/appsync/index.html)
Однако вы можете использовать клиентский инструмент GUI для отправки POST на конечную точку Appsyn c. Как Почтальон или Бессонница (мой личный фаворит). Однако ваша цель состоит в том, чтобы действительно отправлять совместимые с GraphQL запросы через CLI, тогда вам придется прибегнуть к 'curl's
. Вот пример python скрипта, который у меня есть, который отправляет запрос curl на мой Appsyn c API.
#!/usr/bin/env python3
import os
cmd = """curl -i -H 'Content-Type: application/json' -H "x-api-key: <ENTER YOUR API KEY FROM THE APPSYNC SETTINGS PAGE>" -H "Host: <ENTER YOUR HOST ENDPOINT FROM THE APPSYNC API SETTINGS PAGE >" -X POST -d '{"query": "query {listEvents {items {id}}}"}' https://<ENTER YOUR HOST ENDPOINT FROM THE APPSYNC API SETTINGS PAGE>/graphql"""
def doGraphqlRequest():
os.system(cmd)
print("Starting request to Appsync endpoint")
doGraphQLRequest()
print("Finsihed request to Appsync endpoint")
Чтобы пояснить немного, вы делаете запрос POST со своим запросом к appsyn c учитывая '/ graphql / endpoint. У вас есть 3 заголовка (обозначается флагом -H)
- Ключ x-api: применим только в том случае, если вы используете API KEY в качестве типа аутентификации. Другие типы аутентификации тоже работают, у вас может быть AuthToken: Bearer, и Cognito тоже работает, но значительно сложнее из CLI
- Хост: Это имя хоста ec2, данное вашим API. Вы можете найти его, просмотрев назначенную конечную точку и удалив https: // и / graphql
- Тип содержимого: application / json. Это своего рода стандарт, но не уверен, почему, но это необходимо.
Надеюсь, это поможет!