我正在使用一个外部API,在gatsby构建时将数据注入到graphql中,我们的新系统具有一个名为“值”的属性,该属性取决于称为“类型”的相对属性,“值”属性的架构会有所不同类型。
类型>值
上面显示了所有可能的类型字符串以及'value'属性的架构类型。
我不确定这是否可行,但是在createSchemaCustomization函数中,如何定义这样的类型,然后如何在前端查询呢?
这是我的架构的样子,不包括动态逻辑:
type customFields {
_id: String
value: String // this should be a array or File depending on the type value!
type: String
label: String
id: String
},
如果找不到解决方案,这是我正在考虑应用的解决方法:
type customFields {
_id: String
value: String
image: File @fileByCustomDirective // possible hack
values: [String] // possible hack
type: String
label: String
id: String
},
我能想到的现在唯一可行的方法是,通过添加另一个名为“ image”的属性(当值为“ image”时,强制API向我发送类型为“ image”的重复值)类型为“复选框”,尽管感觉确实很麻烦,我希望所有内容都尽可能通过同一个属性。