Як надіслати запит graphql листоношею?


81

я використовую

POST type
URL http://######/graphql
Body: 
query: "query: "{'noteTypes':  {'name', 'label', 'labelColor', 'groupName', 'groupLabel', 'imageUrl'}}"

Але воно повертає "message": "Повинен вказати рядок запиту."

Відповіді:


136

Існує кращий спосіб зробити це за допомогою клієнта REST Insomnia

Тут є документи, як надсилати графічні запити: https://support.insomnia.rest/article/61-graphql


Нижче наведені кроки для листоноші

Крок 1.

Запустіть GraphiQL у Chrome, відкрийте консоль розробника Chrome, клацніть вкладку Мережа та зробіть запит із 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

введіть тут опис зображення


1
Дивовижний! Дивовижний!
ZPPP

справді листоноша не корисна для graphql, нам потрібен graphiql з екранами листоноші
stackdave

Чудово, дякую за ваш сон
жулінпіню

При використанні тих самих кроків, які я отримую :, Помилка під час імпорту знайдених аргументів Curl: 2option. Підтримується лише один (URL)
Ankit Gupta

2
Копіювати як cURL (bash) працював у мене, замість Копіювати як cURL (cmd), використовуючи додаток chrome postman в ОС Windows 10
Інший кодер

47

Вам не потрібна INSOMNIA на випадок, якщо сервер GraphQL відповість Content-type: application/graphqlабоpostman.setEnvironmentVariable ,

Просто зроби це:

На вкладці Заголовки: Content-Type: application/graphql

На вкладці Тіло, вибрано "необроблене", поставте свій запит

введіть тут опис зображення


я отримую "Немає рядка запиту", намагаючись це
dima

1
Для мене ідеально працює! Використання Node.js із залежностями express та express-graphql.
Брайан


19

Існує простий спосіб це зробити. Використовуйте скрипт попереднього запиту, щоб розшифрувати корисне навантаження ( джерело ).

Крок 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
          }
        }
      }
    }
  }
}
`
));

Це воно.


4
Це працює як шарм і дозволяє уникнути клопоту з усіма ручними кроками, описаними в попередніх відповідях! Дякую.
Алексіс Ролланд,

Ми повинні використовувати стару версію graphql або мати конкретну установку, але вона врешті-решт працювала з вищезазначеною пропозицією та крихітним зміною "body" замість "query":> placeholder> {> "body": {{query}}> }
darul75

11

ОНОВЛЕННЯ 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 (без можливості додавання заголовків) потрібно встановити три речі (це непросто ввести):

  1. Заголовок:

    Тип вмісту: application / json

  2. Тіло:

    Виберіть Промінь <optiongroup

    Виберіть JSON (application / json) <selectbox

  3. Складіть об’єкт javascript із запитом "запит" та "значенням" запиту графіка. Як і всі об'єкти в js, йому потрібні властивості та значення, у цьому випадку властивість має значення "quote", значення має бути з подвійними лапками. Всередині значення (рядок graphl) ви не складаєте js-об'єкти, тому вам не потрібно використовувати лапки, це просто рядок.

    {"query": "{allQuotes {text}}"}}

    проблема полягає в тому, що вам потрібно вводити все в один рядок, не як grapIql ... у поштовому службі github є вимога до публікації, тому легка робота з graphql:

введіть тут опис зображення

введіть тут опис зображення


11

ОНОВЛЕННЯ 8-2019 - Я знаю, що це старе, але щодо POSTMAN, якщо ви ще цього не зрозуміли, у них є опція graphql (бета) для розміщення тексту. Немає необхідності додавати будь-які додаткові заголовки.

введіть тут опис зображення


9

Листоноша щойно випустив вбудовану підтримку GraphQL у версії 7.2.

Ця версія підтримує

  • Надсилання запитів GraphQL в тілі запиту як запити POST
  • Підтримка змінних GraphQL
  • Створення API в Postman з типом схеми GraphQL
  • Автозаповнення запитів інтегровано із визначеними користувачем схемами GraphQL

Спробуйте і надішліть нам свій відгук про тему відстеження на нашому форумі спільноти


8

Я зіткнувся з тією ж проблемою, коли намагався використати 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


3

Виходячи з відповіді Естевау Лукаса .

Ви також можете використовувати заголовок Content-type: application/jsonна листоноші

І визначте тіло за допомогою:

{
    "query": "{ your_query }"
}

Це легко побудувати на стороні клієнта, щоб сформувати корисне навантаження запиту.

напр

введіть тут опис зображення

Вихід:

введіть тут опис зображення



0

Оформити замовлення https://github.com/hasura/graphqurl - curl для GraphQL:

  • CLI для створення запитів GraphQL з автозаповненням
  • Запустіть GraphiQL локально проти будь-якої кінцевої точки (із користувацькими заголовками)
  • Використовувати як бібліотеку з nodejs або з браузера
  • Підтримує передплату

Я є одним із авторів.

gq https://gentle-anchorage-72051.herokuapp.com/v1alpha1/graphql -i

GraphiQL із заголовками



-2

Додавши заголовок, ми можемо запустити графічний запит у листоноші

Content-type: application/graphql

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.