ruby-on-rails - Graphql-ruby 如何将哈希定义为类型
问题描述
是否有可能在 graphql-ruby 模式中将 Hash 定义为 Type 字段?在我的数据结构中有一个多语言字符串类型,它由作为键的语言代码和相应的文本组成。目前提供了 2 种语言,例如:
{
"en" : "hello",
"de" : "hallo"
}
所以构建这样的类型就足够了:
class Types::LanguageStringType < GraphQL::Schema::Object
field :de, String, null:true
field :en, String, null:true
end
提供 String 到 String 的 Map 的类型是什么样子的?相应的 typescript 界面如下所示:
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 标量:
推荐阅读
- matlab - parfor 用于更新图形元素
- google-cloud-platform - 无法创建 Cloud Dataproc 自定义映像
- json - 如果嵌套数组在MongoDB中为空,如何删除主数组中的嵌套数组并删除整个数组?
- ios - 实现水平选择器视图的最佳方法
- php - 尝试使用 cmd 在 Laravel 5.6 中播种时出现语法错误,意外 ','
- html - 下拉菜单中的选定项目根据页面而变化
- reactjs - reactjs传单kml错误行为
- python - Nvidia 1070 Ti Ubuntu 18.04 上的深度学习
- r - c50 代码调用退出,值为 1
- apache-flink - Flink 动态表和流连接