我正在使用graphql-js创建一个新的graphQL模式,但不会通过http来提供,它将被用作本地graphql服务。我需要以json格式获取此graphql的模式,以将其与另一个模式合并。我一直在使用get-graphql-schema从服务器获取模式,但这不适用于我的情况。
我想要的是获取json与我在GraphQLSchema
之后获得的new GraphQLSchema({ query, mutation });
对象的模式
我确信这很简单,但我有点困惑。谢谢!
由于您需要本地创建的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
对象,因此您可以跳过前两个步骤并打印架构。
您可以在localhost graphql server上使用get-graphql-schema。