Как мне создать файл schema.graphql при использовании Apollo Server? - PullRequest
1 голос
/ 20 июня 2020

При использовании Apollo Server для написания сервера GraphQL, как я могу запустить команду на сервере, чтобы сгенерировать файл schema.graphql для использования клиентом? Примечание. Я не использую Apollo Client, я использую Relay.

Я знаю, что могу запустить игровую площадку GraphQL и загрузить ее оттуда, но мне нужна командная строка, которую я могу автоматизировать.

Я ищу что-то похожее на rake graphql:schema:dump при использовании GraphQL Ruby, которое вы можете запустить на сервере для создания schema.graphql.

1 Ответ

1 голос
/ 20 июня 2020

Для этого вы можете использовать Apollo CLI. Сначала установите его:

npm install -g apollo

Затем запустите эту команду, как показано в docs :

apollo client:download-schema --endpoint=URL_OF_YOUR_ENDPOINT schema.graphql

Команда сгенерирует либо результат самоанализа, либо схему в SDL в зависимости от расширения, используемого для выходного файла.

Ваш ApolloServer экземпляр не раскрывает схему, которую он создает, но вы также можете запустить запрос самоанализа непосредственно для этого экземпляра:

const { getIntrospectionQuery, buildClientSchema, printSchema } = require('graphql')
const { ApolloServer } = require('apollo-server')

const apollo = new ApolloServer({ ... })
const { data } = await apollo.executeOperation({ query: getIntrospectionQuery() })
const schema = buildClientSchema(data)
console.log(printSchema(schema))

Если вы передаете существующий экземпляр GraphQLSchema на сервер Apollo, вы также можете просто вызвать printSchema на нем напрямую.

...