【问题标题】:GraphQL object property should be a list of stringsGraphQL 对象属性应该是字符串列表
【发布时间】:2016-10-26 00:15:17
【问题描述】:

如何为 GraphQL 中作为字符串数组的对象属性创建架构?我希望响应看起来像这样:

{
  name: "colors",
  keys: ["red", "blue"]
}

这是我的架构

var keysType = new graphql.GraphQLObjectType({
  name: 'keys',
  fields: function() {
    key: { type: graphql.GraphQLString }
  }
});

var ColorType = new graphql.GraphQLObjectType({
  name: 'colors',
  fields: function() {
    return {
      name: { type: graphql.GraphQLString },
      keys: { type: new graphql.GraphQLList(keysType)
    };
  }
});

当我运行这个查询时,我得到一个错误并且没有数据,错误只是[{}]

查询 { 颜色 { 名称、键 } }

但是,当我运行查询以仅返回名称时,我得到了成功的响应。

查询 { 颜色 { 名称 } }

当我查询键时,如何创建一个返回字符串数组的架构?

【问题讨论】:

    标签: javascript node.js graphql graphql-js


    【解决方案1】:

    我想出了答案。关键是将graphql.GraphQLString传递给graphql.GraphQLList()

    架构变为:

    var ColorType = new graphql.GraphQLObjectType({
      name: 'colors',
      fields: function() {
        return {
          name: { type: graphql.GraphQLString },
          keys: { type: new graphql.GraphQLList(graphql.GraphQLString)
        };
      }
    });
    

    使用这个查询:

    查询 { 颜色 { 名称、键 } }

    我得到了想要的结果:

    {
      name: "colors",
      keys: ["red", "blue"]
    }
    

    【讨论】:

    • 太棒了,感谢您花时间编写您的解决方案。为我节省了很多时间!
    • @davnicwil 没错!
    猜你喜欢
    • 2018-08-09
    • 2017-10-29
    • 2021-11-28
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多