Graphql-ruby 如何将散列定义为类型
Graphql-ruby how to define a hash as type
是否可以在 graphql-ruby 模式中将哈希定义为类型字段?
在我的数据结构中有一个多语言字符串类型,它由作为键的语言代码和相应的文本组成。目前提供 2 种语言,例如:
{
"en" : "hello",
"de" : "hallo"
}
所以构建这样的类型就足够了:
class Types::LanguageStringType < GraphQL::Schema::Object
field :de, String, null:true
field :en, String, null:true
end
提供字符串到字符串映射的类型看起来如何?例如,相应的打字稿界面如下所示:
title: {
[language: string]: string;
}
更进一步,像递归节点:
export interface NodeDescription {
name: string
children?: {
[childrenCategory: string]: NodeDescription[];
}
}
有没有办法在字段中将其用作 graphql-ruby 模式中的 Types::NodeDescriptionType?
没有通用对象类型这样的东西。并且没有内置的 String -> String Hash 类型。您的 GraphQL API 建立在您必须提前定义的特定对象图上。如果您只需要一个字符串 -> 字符串哈希,那么您可以定义自己的标量,或者如果足够的话,您可以使用 graphql-ruby 附带的内置 JSON 标量:
是否可以在 graphql-ruby 模式中将哈希定义为类型字段? 在我的数据结构中有一个多语言字符串类型,它由作为键的语言代码和相应的文本组成。目前提供 2 种语言,例如:
{
"en" : "hello",
"de" : "hallo"
}
所以构建这样的类型就足够了:
class Types::LanguageStringType < GraphQL::Schema::Object
field :de, String, null:true
field :en, String, null:true
end
提供字符串到字符串映射的类型看起来如何?例如,相应的打字稿界面如下所示:
title: {
[language: string]: string;
}
更进一步,像递归节点:
export interface NodeDescription {
name: string
children?: {
[childrenCategory: string]: NodeDescription[];
}
}
有没有办法在字段中将其用作 graphql-ruby 模式中的 Types::NodeDescriptionType?
没有通用对象类型这样的东西。并且没有内置的 String -> String Hash 类型。您的 GraphQL API 建立在您必须提前定义的特定对象图上。如果您只需要一个字符串 -> 字符串哈希,那么您可以定义自己的标量,或者如果足够的话,您可以使用 graphql-ruby 附带的内置 JSON 标量: