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

标签 javascript graphql relayjs graphql-js

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

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

关于javascript - 如何从 GraphQLSchema javascript 对象获取 .graphql 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47743498/

相关文章:

javascript - 如果复选框被选中,如何知道将元素添加到数组中,如果未选中,如何将其删除?

facebook-graph-api - GraphQL 获取嵌套图中子边的附加数据

GraphQL 条件必填字段指令

javascript - 如何使用变量组合查询片段

javascript - 如何在没有 HTTP 的情况下从 Angular2 (TypeScript) 中的 json 获取数据?

javascript - 如何访问 Ramda.map 中的迭代索引

reactjs - react 中继和 react Hook

javascript - 使用中继进行身份验证和访问控制

javascript - 声明 JS 变量时使用 "in"

spring-boot - SpringBoot GraphQL 字段名称不匹配