Вы можете выполнить запрос самоанализа для любого сервиса GraphQL (при условии, что они не отключили самоанализ - некоторые сервисы делают это в производственной среде). Результат этого запроса может быть передан в buildClientSchema
, чтобы восстановить схему из результата самоанализа (естественно, без какого-либо логического разрешения поля c). Затем вы можете преобразовать возвращенный объект GraphQLSchema в SDL, вызвав printSchema
.
Вот пример использования ax ios, но вы можете использовать любую http-библиотеку, которая вам нравится, для выполнения запроса:
const { buildClientSchema, getIntrospectionQuery, printSchema } = require('graphql')
const res = await axios.post(ENDPOINT_URL, { query: getIntrospectionQuery() })
const schema = buildClientSchema(res.data.data)
const sdl = printSchema(schema)
console.log(sdl)
Примечание: первые «данные» - это то, что API-интерфейс ax ios называет фактическим JSON ответом от сервера, а вторые «данные» - это фактическое свойство «данных», которое мы и хотим перейти на buildClientSchema
.