Как отправить запрос GraphQL на AWS AppSyn c из командной строки? - PullRequest
2 голосов
/ 05 февраля 2020

CLI AWS для AppSyn c имеет прекрасный набор функций для удаленного управления им из командной строки моей рабочей станции, так что в большинстве случаев мне не нужно использовать консоль браузера.

Но для выполнения запроса мне нужно go в консоли веб-браузера и найти запросы GraphQl в AppSyn c. Я могу изменить все с помощью CLI, но не могу найти команду, которая просто выдает запрос graphql.

Я пропустил это? Это там?
Я больше не хочу смотреть на этот экран ...

AWS AppSync Queries

1 Ответ

5 голосов
/ 05 февраля 2020

Страница запросов 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)

  1. Ключ x-api: применим только в том случае, если вы используете API KEY в качестве типа аутентификации. Другие типы аутентификации тоже работают, у вас может быть AuthToken: Bearer, и Cognito тоже работает, но значительно сложнее из CLI
  2. Хост: Это имя хоста ec2, данное вашим API. Вы можете найти его, просмотрев назначенную конечную точку и удалив https: // и / graphql
  3. Тип содержимого: application / json. Это своего рода стандарт, но не уверен, почему, но это необходимо.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...