Правильный формат для многострочного '--data' в запросе curl для конечной точки graphql? - PullRequest
0 голосов
/ 25 ноября 2018

Я передаю "--data" через curl в конечную точку API GraphqQL.

Я хочу иметь возможность передавать данные в «предварительно проверенной» форме, например, как в браузере GraphiQL,

{
  alpha {
    param1
    param2
  }
}

Atm, мое форматирование внутри данных - а именно, re: line return - не обрабатывается должным образом.

Эта однострочная форма работает,

curl \
 -H 'content-type: application/json' \
 -X POST /path/to/graphql/api/endpoint \
 --data '{ "query":
           "query { alpha {param1, param2} } "
         }'

Эта «предварительно сертифицированная» версия не

curl \
 -H 'content-type: application/json' \
 -X POST /path/to/graphql/api/endpoint \
 --data '{ "query":
           "query {
              alpha {
                param1
                param2
              }
            } "
         }'

Какой правильный синтаксис для передачи второй формы?

Я предполагаю некоторую комбинацию цитирования /спасаясь

1 Ответ

0 голосов
/ 26 ноября 2018

Новые строки просто не допускаются внутри строк JSON.(См. RFC 8259 §7 , в котором говорится, что управляющие символы должны быть экранированы.) Вы можете превратить новую строку в \n, но это становится немного громоздким:

curl \
 -H 'content-type: application/json' \
 -X POST /path/to/graphql/api/endpoint \
 --data '{ "query":
           "query {\n  alpha {\n    param1\n    param2\n  }\n} "
         }'

Так какJSON-запросы довольно хорошо структурированы, кажется, лучше использовать специальный инструмент для отправки запросов GraphQL: автономная версия GraphiQL подходит по умолчанию или если у вас есть любимый язык сценариев сразумный HTTP-клиент, достаточно просто написать что-нибудь с этим.

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