На клиенте я получаю схему по introspectSchema .
В моем приложении я хочу получить список всех типов, которые есть в схеме, но анализ существующего объекта - очень сложная задача.
Есть ли хороший способ сделать это?
Для разбора constructor object type, вам нужно printSchema, результат будет string type
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.
merge-graphql-schemas
исходный код: https://github.com/mrdulin/apollo-server-express-starter/blob/master/src/remote-schema/helper.js
В GraphQL встроены мощные возможности самоанализа. Чтобы получить имена типов в вашей схеме, вы можете выполнить этот запрос GraphQL:
{ __schema { types { name } } }
Подробнее о самоанализе в GraphQL вы можете прочитать здесь:
https://graphql.org/learn/introspection/