Как я могу получить список всех типов из схемы graphql? - PullRequest
0 голосов
/ 30 августа 2018

На клиенте я получаю схему по introspectSchema .

В моем приложении я хочу получить список всех типов, которые есть в схеме, но анализ существующего объекта - очень сложная задача.

Есть ли хороший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Для разбора constructor object type, вам нужно printSchema, результат будет string type

Вот фрагмент кода:

  const { introspectSchema } = require('graphql-tools');
  const { printSchema } = require('graphql');

  const schema = await introspectSchema(link);

  const typeDefs = printSchema(schema);

И вы можете использовать merge-graphql-schemas для объединения string type.

исходный код: https://github.com/mrdulin/apollo-server-express-starter/blob/master/src/remote-schema/helper.js

0 голосов
/ 31 августа 2018

В GraphQL встроены мощные возможности самоанализа. Чтобы получить имена типов в вашей схеме, вы можете выполнить этот запрос GraphQL:

{
  __schema {
    types {
      name
    }
  }
}

Подробнее о самоанализе в GraphQL вы можете прочитать здесь:

https://graphql.org/learn/introspection/

...