首页 文章

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

提问于
浏览
1

我正在使用graphql-js创建一个新的graphQL架构,但不会通过http提供服务,它将用作本地graphql服务 . 我需要以json格式获取此graphql的模式,以将其与另一个模式合并 . 我一直在使用get-graphql-schema从服务器获取模式,但在我的情况下这不起作用 .

我想要的是获取json与我在 new GraphQLSchema({ query, mutation }); 之后获得的 GraphQLSchema 对象的模式

我确信这很简单,但我有点困惑 . 谢谢!

2 回答

  • 0

    您可以在localhost graphql server上使用get-graphql-schema .

  • 1

    由于您需要本地创建的 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 endpoints 一起使用 . 该包首先发送内省查询以获取JSON表示,然后使用 graphql-js buildClientSchema 重构客户端(非可执行)模式,然后使用 printSchema 最终输出可以放在.graphql文件中的模式语言表示 . 由于您已在本地拥有 GraphQLSchema 对象,因此您可以跳过前两个步骤并打印架构 .

相关问题