【问题标题】:What is the difference between buildSchema and makeExecutableSchemabuildSchema 和 makeExecutableSchema 有什么区别
【发布时间】:2018-05-03 01:15:55
【问题描述】:

graphql 包中的buildSchemagraphql-tools 包中的makeExecutableSchema 有什么区别。

【问题讨论】:

  • 我认为buildSchema一开始并不存在,所以它们是一样的,只是buildSchema是后来添加的

标签: graphql apollo graphql-js


【解决方案1】:

除了它们来自两个不同的包,因为buildSchema 来自official graphql-js packagemakeExecutableSchema 来自Apollo,它们的作用也略有不同。

buildSchema 从模式语言构建模式对象。它只需要一大串类型定义作为参数。

makeExecutableSchema 将模式和解析器组合成可执行模式。它是graphql-tools 包的一部分,可以更轻松地使用模式语言,同时还可以编写解析器。所以你定义类型和解析器并将它们传递给makeExecutableSchema。您可以将一组 Schema 定义传递给它,这样您就可以将多个模式合并在一起,对其进行模块化。

请参阅Apollo docs for graphql-tools,了解他们建议的构建 GraphQL 服务器的方法。

【讨论】:

  • 但是我不必通过解析器,那么在这种情况下会有什么区别
  • 您必须将解析器传递给makeExecutableSchema。它们是必需的。当您使用graphql-tools 时,这是构建 GraphQL 服务器的一种方式。您不必这样做,因此您可以改用 buildSchema 并将您的解析器作为选项传递给您的 GraphQL 端点。
猜你喜欢
  • 2018-11-20
  • 2019-08-20
  • 2019-05-27
  • 2010-10-02
  • 2011-12-12
  • 2010-09-16
  • 2012-03-14
  • 2012-02-06
相关资源
最近更新 更多