я использую
POST type
URL http://######/graphql
Body:
query: "query: "{'noteTypes': {'name', 'label', 'labelColor', 'groupName', 'groupLabel', 'imageUrl'}}"
Но он возвращает «сообщение»: «Необходимо предоставить строку запроса».
Ответы:
Есть лучший способ сделать это с помощью REST-клиента Insomnia.
Документы здесь, как отправлять запросы graphql: https://support.insomnia.rest/article/61-graphql
Ниже приведены шаги для почтальона
Шаг 1.
Запустите GraphiQL в Chrome, откройте консоль Chrome Dev, щелкните вкладку Сеть и сделайте запрос из graphiql, когда вы сделаете запрос, на вкладке сети отобразится запрос graphql ...
Шаг 2.
Из graphqlзапроса скопируйте запрос запроса, выберитеCopy as cURL (cmd)
Шаг 3.
Откройте Почтальон, в верхнем левом углу нажмите Importкнопку, после нажатия Importвам нужно нажать Paste Raw Textи вставить скопированный cURLзапрос, как это было сделано на шаге 2, после того, как это будет сделано, нажмитеImport
Шаг 4.
Почтальон готов отправить запрос Graphql, просто нажмите Sendкнопку, вы увидите Responseв поле ответа в теле, как показано ниже
Шаг 5.
Чтобы увидеть, как отправляется запрос, щелкните Bodyвкладку рядом с ней Headers, вы узнаете, как предоставить поля от почтальона в формате JSON.
например:, edges {\n node {\n id\n jobId\n }\nЕсли вы хотите просмотреть другое поле, вам нужно добавить его с суффиксом\n
вроде если нужно nameто:edges {\n node {\n id\n jobId\n name\n }\n
\nздесь просто означает новую строку. Вместо этого вы можете упростить задачу, предоставив ясный и наглядный JSON, как показано ниже.
================================================== =========================
Примечание . Тип тела должен быть необработанным сapplication/jsonтипом содержимого. Итак, запрос должен быть действующим JSON с кавычками.".."
{
"query":"{viewer {user {edges {node {id jobId name }}}}}"
}
================================================== =========================
вы можете сразу начать, step 5если знаете, как отправить запрос в теле, а также другие вещи, которые должны потребоваться при отправке запроса от почтальона
С упрощенным JSON
Добавив это для всех, кто ищет по теме ... вы можете использовать и тестировать вызовы GraphQL намного лучше и проще с Insomnia:
Это было здорово для разработки GraphQL.
Есть простой способ сделать это. Используйте сценарий предварительного запроса, чтобы структурировать полезную нагрузку ( источник ).
Шаг 1.
В теле запроса поместите заполнитель для полезной нагрузки.
{
"query":{{query}}
}
Шаг 2.
Создайте полезную нагрузку в сценарии предварительного запроса и сохраните ее в переменной среды.
postman.setEnvironmentVariable("query", JSON.stringify(
`
{
search(query: "test", type: ISSUE, first: 10) {
issueCount
edges {
node {
... on Issue {
title
id
state
closed
repository {
name
}
}
}
}
}
}
`
));
Вот и все.
Это непрактично использовать POSTMAN, потому что они работают, но с легкостью добавляют заголовки, что занимает много времени, и я думаю, что POSTMAN не предназначен для естественной работы с graphql,
вы можете следить за прогрессом здесь: https://github.com/postmanlabs/postman-app-support/issues/1669
Я рекомендую использовать другой плагин пакетов, например:
the best (like postman , but profile and sync price 5$ monthly):
https://insomnia.rest/
others:
https://github.com/andev-software/graphql-ide
https://github.com/imolorhe
для graphiql (без возможности добавления заголовков) вам нужно установить три вещи (их нелегко набрать):
Заголовок:
Тип содержимого: приложение / json
Тело:
Выберите Ray <optiongroup
Выберите JSON (приложение / json) <selectbox
Составьте объект javascript с «запросом» и «значением» вашего графического запроса. Как и всем объектам в js, ему необходимы свойство и значение, в данном случае "quote" - это свойство, значение должно быть заключено в двойные кавычки. Внутри значения (строка graphl) вы не составляете объекты js, поэтому вам не нужно использовать двойные кавычки, это просто строка.
{"запрос": "{allQuotes {текст}}"}
проблема в том, что вам нужно ввести все в одну строку, не как grapIql ... в почтальоне github есть требование публикации, поэтому с graphql легко работать:
Postman только что выпустил встроенную поддержку GraphQL в версии 7.2.
Эта версия поддерживает
- Отправка запросов GraphQL в теле запроса как запросов POST
- Поддержка переменных GraphQL
- Создание API в Postman с типом схемы GraphQL
- Автозаполнение запросов интегрировано с пользовательскими схемами GraphQL
Пожалуйста, попробуйте и поделитесь с нами своим мнением в ветке отслеживания на нашем форуме сообщества.
Я столкнулся с той же проблемой, когда пытаюсь использовать graphQlзапрос, используя POSTMANв POSTMAN отправку данных из rawвкладки с jsonтипом.
Команда запроса:
{"query":"{user(id:902){id,username,DOB}}"}
Команда мутации:
{ "query": "mutation {createMutations(reviewer:36, comments:\"hello\",data_id: 1659, approved: true ){id}}" }
#commnent: String Type
#data_id:Int Type
#approved:Boolean Type
Если вы используете Visual Studio, я написал плагин для преобразования GraphQL в тело Restful.
https://marketplace.visualstudio.com/items?itemName=orasik.graphql-to-rest-queries
Исходя из ответа Эстевана Лукаса .
Вы также можете использовать заголовок Content-type: application/jsonна почтальоне
И определите тело с помощью:
{
"query": "{ your_query }"
}
Это легко создается на стороне клиента для формирования полезной нагрузки запроса.
например
Вывод:
Postman недавно запустил встроенную поддержку GraphQL: https://blog.getpostman.com/2019/06/18/postman-v7-2-supports-graphql/
Ниже приведен снимок экрана локального тестирования GraphQL:
Примечание . Запуск GraphQL локально с использованием Spring-boot https://www.baeldung.com/spring-graphql
Оформить заказ https://github.com/hasura/graphqurl - curl для GraphQL:
Я один из авторов.
gq https://gentle-anchorage-72051.herokuapp.com/v1alpha1/graphql -i
ЕСЛИ мы можем передать тип заголовка, тогда добавьте заголовок Content-type: application / graphql
Ссылку ниже можно использовать как ссылку: описание ссылки здесь