я использую
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
Ссылку ниже можно использовать как ссылку: описание ссылки здесь