Как найти доступные операции в URL-адресе GraphQL?

Простите за такой расплывчатый вопрос. У меня есть URL-адрес http://example.com/graphql. Я хочу знать, какие операции доступны. Есть ли способ узнать это?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
1 639
1

Ответы 1

GraphQL имеет система самоанализа, который позволяет вам запрашивать его схему. Вы можете создать запрос GraphQL, чтобы исследовать его типы.

Например, чтобы узнать все корневые поля запроса и мутации, вы можете POST следующего тела JSON на http://example.com/graphql с типом содержимого, установленным на application/json

{
   "query" : "{__schema {queryType {name fields {name}}mutationType {name fields {name}}}}"
}

Или используя GET и поместив запрос GraphQL в параметр запроса query:

http://example.com/graphql/?query = {__schema {queryType {name fields {name}}mutationType {name fields {name}}}}

который вернет что-то лайк:

{
  "data": {
    "__schema": {
      "queryType": {
        "name": "Query",
        "fields": [
          {
            "name": "searchFoo"
          },
          {
            "name": "searchBar"
          }

        ]
      },
      "mutationType": {
        "name": "Mutation",
        "fields": [
          {
            "name": "createFoo"
          },
          {
            "name": "updateFoo"
          }
        ]
      }
    }
  }

Но гораздо более простой способ - использовать клиент GraphQL, такой как GraphiQL или Бессонница или ... который, скорее всего, предоставит вам интерактивный пользовательский интерфейс для изучения схемы GraphQL и имеет некоторую функцию автозаполнения / подсказки, которая поможет вам построить запрос GraphQL.

Более простой способ - использовать Apollo Server, в который уже интегрирована игровая площадка GraphQL. apollographql.com/docs/apollo-server/features/…

xwlee 09.01.2019 09:58

@xwlee Я больше хочу изучить существующую настройку graphQL.

Volatil3 09.01.2019 11:10

Я пробовал в Почтальон, и он вернул POST body missing. Did you forget use body-parser middleware?

Volatil3 09.01.2019 11:13

@ Volatil3. Не знаю, что происходит на вашем сервере. Я просто пробую использовать Postman на этом общедоступном GraphQL API https://graphql.brandfolder.com/graphql, и он работает.

Ken Chan 09.01.2019 11:35

@ Volatil3. Собственно, мы также можем отправить запрос GraphQL с помощью GET. посмотрите мое обновление и попробуйте использовать GET с http://zillow.com/graphql, и вы обнаружите, что они, похоже, не позволяют самоанализ ...

Ken Chan 09.01.2019 14:49

@KenChan Я попытался использовать Get и обнаружил ошибку GET query missing..

Volatil3 09.01.2019 16:14

@ Volatil3. Вдруг разобрался, попробуй https://www.zillow.com/graphql/?query = {__schema%20{queryType‌​%20{name%20fields%20‌​{name}}mutationType%‌​20{name%20fields%20{‌​name}}}}. Я пробовал несколько раз, иногда работает, иногда нет .....

Ken Chan 09.01.2019 16:28

@KenChan Выдает ошибку "GraphQL introspection not allowed. Это не помогает мне знать фактическое, но спасибо за то, что разобрались.

Volatil3 09.01.2019 19:33

Другие вопросы по теме