为graphql-js合并单独的架构文件?

时间:2019-05-31 12:41:06

标签: graphql-js

我正在使用graphql-js npm软件包(不是Apollo Server或类似的软件包)。我将架构分离到不同的文件中,因此需要以某种方式进行组合。

import { graphql, buildSchema } from 'graphql';
import { schema as bookSchema } from './book';
import { schema as authorSchema } from './author';
import root from './root';

const schema = buildSchema(bookSchema + authorSchema);

export default ({ query, variables }) => graphql(schema, query, root, null, variables);

https://github.com/graphql/graphql-js

在author.js中:

export const schema = `
  type Query {
    getAuthors: [Author]
  }

  type Author {
    name: String
    books: [Book]
  }
`;

在book.js中:

export const schema = `
  type Query {
    getBooks: [Book]
  }

  type Book {
    title: String
    author: Author
  }
`;

可以很好地组合BookAuthor类型,但出现此错误:

  

错误:只能有一种名为“查询”的类型。

我已经在其他库中看到extend用于解决此问题,但是当我尝试getBooks时,查询并没有在操场上进行。

export const schema = `
  extend type Query {
    getBooks: [Book]
  }

  type Book {
    title: String
    author: Author
  }
`;

0 个答案:

没有答案