Как отправить запрос graphql почтальона?
Я использую
POST type
URL http://######/graphql
Body:
query: "query: "{'noteTypes': {'name', 'label', 'labelColor', 'groupName', 'groupLabel', 'imageUrl'}}"
Но он возвращается
"сообщение": "Должна предоставить строку запроса".
Ответы
Ответ 1
Там лучший способ сделать это с помощью клиента REST Бессонница
Документы здесь, как отправлять запросы graphql: https://support.insomnia.rest/article/61-graphql
Ниже приведены шаги для почтальона
Шаг 1.
Запустите GraphiQL в Chrome, откройте Chrome Dev Console, перейдите на вкладку Сеть и сделайте запрос из graphiql. Когда вы сделаете запрос, на вкладке сети отобразится запрос graphql...
![enter image description here]()
Шаг 2.
Из запроса graphql
скопируйте запрос запроса, выберите Copy as cURL (cmd)
![enter image description here]()
Шаг 3.
Откройте Почтальон. В верхнем левом углу нажмите кнопку " Import
, после того, как вы нажмете " Import
вы должны нажать " Paste Raw Text
и вставить скопированный запрос cURL
как это было сделано в шаге 2, после того, как он сделал, нажмите " Import
![enter image description here]()
Шаг 4
Почтальон готов отправить запрос Graphql. Просто нажмите кнопку " Send
, вы увидите Response
в поле для ответов в теле, как показано ниже
![enter image description here]()
Шаг 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 }}}}}"
}
================================================== =========================
![enter image description here]()
вы можете напрямую начать с step 5
если вы знаете, как отправить запрос в теле и других вещах, которые также могут потребоваться при выполнении запроса от почтальона
![enter image description here]()
С упрощенным JSON
![enter image description here]()
Ответ 2
Вам не нужна INSOMNIA в случае, если сервер GraphQL отвечает на Content-type: application/graphql
или postman.setEnvironmentVariable
,
Просто сделай это:
На вкладке "Заголовки": Content-Type: application/graphql
На вкладке "Тело", выбрав "raw", поместите ваш запрос
![enter image description here]()
Ответ 3
Добавление этого для любого, кто ищет по этой теме... вы можете использовать и тестировать вызовы GraphQL намного лучше и легче с помощью Insomnia:
https://insomnia.rest
Это было фантастически для разработки GraphQL.
Ответ 4
Там простой способ сделать это. Используйте сценарий предварительного запроса для структурирования полезной нагрузки (источника).
Шаг 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
}
}
}
}
}
}
'
));
Это.
Ответ 5
ОБНОВЛЕНИЕ 2:
Это не практическое использование 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
-
Тело:
Выберите Луч <группа опций
Выберите JSON (приложение /JSON) <выберите
-
Составьте объект javascript с помощью "запроса" и "значения" вашего графического запроса. Как и всем объектам в js, ему нужны свойство и значение, в этом случае "quote" - это свойство, значение должно быть в двойных кавычках. Внутри значения (строка графа) вы не составляете объекты js, поэтому вам не нужно использовать двойные кавычки, это просто строка.
{"query": "{allQuotes {text}}"}
проблема в том, что вам нужно напечатать все в одной строке, а не как grapIql... в postman github есть требование post, поэтому легко работать с graphql:
![enter image description here]()
![enter image description here]()
Ответ 6
Я столкнулся с той же проблемой, когда пытался использовать запрос 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
Ответ 7
Почтальон только что выпустил встроенную поддержку GraphQL в версии 7.2.
Эта версия поддерживает
- Отправка запросов GraphQL в теле запроса в виде запросов POST
- Поддержка переменных GraphQL
- Создание API в Postman с типом схемы GraphQL
- Автозаполнение запросов, интегрированное с пользовательскими схемами GraphQL
Пожалуйста, попробуйте и оставьте свой отзыв о теме отслеживания на форуме нашего сообщества.
Ответ 8
Получив ответ Эстевана Лукаса.
Вы также можете использовать заголовок Content-type: application/json
на почтальоне
И определить тело с помощью:
{
"query": "{ your_query }"
}
Это легко построить на стороне клиента для формирования полезной нагрузки запроса.
например
![enter image description here]()
Выход:
![enter image description here]()
Ответ 9
Если вы используете Visual Studio, я написал плагин для преобразования GraphQL в тело Restful
https://marketplace.visualstudio.com/items?itemName=orasik.graphql-to-rest-queries
![enter image description here]()
Ответ 10
Postman недавно запустил встроенную поддержку GraphQL: https://blog.getpostman.com/2019/06/18/postman-v7-2-supports-graphql/
Ниже приведен скриншот тестирования локального GraphQL:
![enter image description here]()
Примечание: локальный запуск GraphQL с использованием spring-boot https://www.baeldung.com/spring-graphql
Ответ 11
ОБНОВЛЕНИЕ 8-2019 - Я знаю, что это старое, но что касается POSTMAN, если вы еще не поняли это, у них есть опция graphql (бета) для публикации тела. Нет необходимости добавлять дополнительные заголовки.
![enter image description here]()
Ответ 12
Оформить заказ https://github.com/hasura/graphqurl - curl для GraphQL:
- CLI для выполнения запросов к GraphQL с автозаполнением
- Запускать GraphiQL локально для любой конечной точки (с пользовательскими заголовками)
- Использовать как библиотеку с nodejs или из браузера
- Поддерживает подписки
Я один из авторов.
gq https://gentle-anchorage-72051.herokuapp.com/v1alpha1/graphql -i
![GraphiQL with headers]()
Ответ 13
ЕСЛИ мы можем передать тип заголовка, то добавим заголовок Content-type: application/graphql
Ниже ссылка может быть использована в качестве ссылки: описание ссылки здесь
Ответ 14
Добавив заголовок, мы можем запустить запрос graphql в почтальоне
Content-type: application/graphql