【问题标题】:How to define a GraphQLType for a list of strings and numbers?如何为字符串和数字列表定义 GraphQLType?
【发布时间】:2018-05-27 00:54:59
【问题描述】:

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

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

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

这可能吗?

谢谢,

【问题讨论】:

    标签: javascript graphql graphql-js


    【解决方案1】:

    您可以尝试使用 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"
            ]
          ]
        ]
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-08
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 2018-05-16
      相关资源
      最近更新 更多