Node.js 使用graphql工具定义模式

Node.js 使用graphql工具定义模式,node.js,graphql,Node.js,Graphql,我正在尝试为我的API定义模式。我遇到了一个问题,每个资源都有许多不同的部分。理想情况下,我只想说节是一个JSON对象,而不是定义节中的所有不同模块。我有办法做到这一点吗?据我所知,似乎没有使用graphql工具的JSON类型定义 您需要导入一个自定义JSON标量。是目前比较流行的一种 在typeDefs中的任意位置添加以下行: scalar JSON 然后在传递给makeExecutableSchema的解析器对象中: 警告一句:任何时候使用JSON作为标量,都会失去灵活性。GraphQL的

我正在尝试为我的API定义模式。我遇到了一个问题,每个资源都有许多不同的部分。理想情况下,我只想说节是一个JSON对象,而不是定义节中的所有不同模块。我有办法做到这一点吗?据我所知,似乎没有使用graphql工具的JSON类型定义


您需要导入一个自定义JSON标量。是目前比较流行的一种

在typeDefs中的任意位置添加以下行:

scalar JSON
然后在传递给makeExecutableSchema的解析器对象中:


警告一句:任何时候使用JSON作为标量,都会失去灵活性。GraphQL的部分魅力在于它允许客户机只查询他们需要的字段。当您使用JSON时,您的客户机将只能查询整个JSON块,或者根本无法查询—他们将无法选择其中的一部分。

这正是我想要的,谢谢。我不太担心失去部分响应的灵活性,因为我永远不需要选择单个部分。JSON标量将在这里起作用,但需要注意的是:如果您开始使用JSON标量,您将失去GraphQL的许多好处。例如,如果您已经设置了该对象,则不会自动检查该对象的类型。
scalar JSON
const GraphqlJSON = require('graphql-type-json')

const resolvers = {
  Query: //queries
  Mutation: //mutations
  // All your other types
  JSON: GraphqlJSON
}