有没有办法在 GraphQL 中表示键值对的对象

Is there a way to represent an object of key-value pairs in GraphQL

我在 Node.js 应用程序中使用 GraphQL。我想存储一个对象,该对象使用键作为语言环境短代码和相应语言中字符串的值。 (如 { en: "Hello", ru: "Привет" } 等)

我想用 GraphQL 表示这个,都在输入中(像那样):

mutation {
  addExercise(name: { en: "Hello", ru: "Привет" })
}

并在输出中(像那样)

{
  exercises {
    _id, name
  }
}

(name 应该 return 键值对对象:)

[
  {_id: 1, name: { en: "Hello", ru: "Привет" }}
]

我该怎么做?

我知道我可以用这种方式存储我的数据

{ name: "en", value: "Hello }`

不过前面那个好像比较简单

您可以为 JSON 定义标量类型,然后 return 按原样定义数据。 这是一个示例库,它就是这样做的(使用它或复制和修改): https://github.com/taion/graphql-type-json/blob/master/src/index.js

尽情享受吧!