在 GraphQL Schema 中定义地图对象的最佳方式?

新手上路,请多包涵

我尝试用对象数组映射一个键字符串。

我可以创建一个简单的对象,但我想在这些数组中轻松添加一个对象。地图对象非常适合执行此操作。

问题:我不知道如何为 GraphQL 定义类型映射 :‘(

 @ObjectType()
export class Inventaire
  @Field()
  _id: string;

 @Field()
  stocks: Map<string, Article[]>;
}

原文由 Tanguy Paqueto Dé Pépito 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 548
1 个回答

GraphQL 不提供任何开箱即用的 地图 类型。键值对的 JSON blob 没有强大的模式,所以你不能有这样的东西:

 {
    key1: val1,
    key2: val2,
    key3: val3,
    ...
}

但是,您可以将 GraphQL 模式定义为具有键值元组类型,然后定义您的属性以返回这些元组的数组。

 type articleMapTuple {
     key: String
     value: Article
}

type Inventaire {
     stocks: [articleMapTuple]
}

然后你的返回类型看起来像这样:

     data [
    {
        key: foo1,
        value: { some Article Object}
    },
    {
        key: foo2,
        value: { some Article Object}
    },
    {
        key: foo3,
        value: { some Article Object}
    },
]

原文由 user3126362 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题