javascript - 如何为字符串和数字列表定义 GraphQLType?

标签 javascript graphql graphql-js

我在服务器上有一个如下所示的对象:

{ data: [[1,"asds"], [4, "ssd", [94, "广告"]] }

如何在 GraphQL 中定义类型(使用 graphql.js)来描述这一点?基本上类似于 GraphQLList(GraphQLString | GraphQLint)。

这可能吗?

谢谢

最佳答案

您可以尝试使用 GraphQLScalarType 接受任何值:

var AnyValueScalar = new graphql.GraphQLScalarType({
  name: 'AnyValueScalar',
  serialize: anyValue,
  parseValue: anyValue,
  parseLiteral(ast) {
      return anyValue(ast.value);
  }
});

function anyValue(value) {
  return value
}

定义查询类型字段数据

var queryType = new graphql.GraphQLObjectType({
  name: 'Query',
  fields: {
    data: {
      type: AnyValueScalar,
      resolve: function(_,args){
        return [[1,"asds"], [4, "ssd", [94, "Ads"]]]
      }
    }
  }
});

如果您在 QraphiQL 中查询如下

query {
  data
}

应该有结果

{
  "data": {
    "data": [
      [
        1,
        "asds"
      ],
      [
        4,
        "ssd",
        [
          94,
          "Ads"
        ]
      ]
    ]
  }
}

关于javascript - 如何为字符串和数字列表定义 GraphQLType?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47787861/

相关文章:

javascript - 使用chart.js绘制图形

javascript - 函数在我的代码中不起作用

javascript - GraphQL:为构建模式提供的一种类型缺少名称

即使已经设置了 context.user 解析器,GraphQL 关系也会泄漏数据。如何防止数据通过关系泄露?

javascript - useMutation 总是返回未定义的数据

graphql - 我们如何区分 graphql 中的包含指令和跳过指令?

javascript - React Native Websocket外部访问

javascript - 如何使用 Webpack 5 和 Babel 7 创建 IE11 Bundle

ruby - `fetch' : key not found: "data" (KeyError) : graphql-client error

json - 突变中的单个 JSON 参数