如何从 GraphQLSchema javascript 对象获取 .graphql 文件?

how to obtain .graphql file from GraphQLSchema javascript object?

我正在使用 graphql-js but is not going to be served through http, is going to be used as a local graphql service. I need to obtain the schema for this graphql in json format to merge it with another schema. I have been using get-graphql-schema 创建一个新的 graphQL 模式以从服务器获取模式,但这在我的情况下不起作用。

我想要的是从我在 make new GraphQLSchema({ query, mutation });

之后获得的 GraphQLSchema 对象中获得带有架构的 json

我相信这很简单,但我有点坚持。谢谢!

您可以在本地主机 graphql 服务器上使用 get-graphql-schema

因为你想要一个来自本地创建的 GraphQLSchema 对象的 .graphql 文件,你可以只使用 printSchema 打印它然后将它写入文件

import { printSchema } from 'graphql';
import Query from './Query';
import fs from 'fs';

const schema = new GraphQLSchema({
  query: Query
});

const fileData = printSchema(schema);

fs.writeFile('/path/to/schema.graphql', fileData, error => {
  // handle error
});

get-graphql-schema 包只能与 graphql-server 端点一起使用。该包首先发送内省查询以获取 JSON 表示,然后使用 graphql-js 重建客户端(不可执行)模式 buildClientSchema 然后使用 printSchema 最终输出可以放在 .graphql 文件中的模式语言表示。由于您已经在本地拥有 GraphQLSchema 对象,因此您可以跳过前 2 个步骤并打印架构。