GQL 方案接受同一键的多个数据结构
GQL scheme to accept multiple data structure for same key
我目前正在我的应用程序中使用 GQL Modules
。
在下面的数据结构中,content
将有 object
或 array
var A = {
content: {
text: "Hello"
}
}
var B = {
content: {
banner: [{
text: "Hello"
}]
}
}
如何让 content
接受动态模式?
下面是我累了,但没有工作。请帮忙
type body {
content: TextContent | [Banner]
}
type Banner {
text: TextContent
}
type TextContent {
text: String
}
GraphQL 要求字段始终解析为单个值或列表——它不能解析为任何一个。字段 可以 但是, return 在运行时使用抽象类型(联合或接口)完全不同的类型。所以你可以像这样重构你的模式:
type Body {
content: Content
}
union Content = TextContent | BannerContent
type TextContent {
text: String
}
type BannerContent {
banners: [Banner]
}
然后您将使用片段查询 content
:
query {
someField {
body {
content: {
...on TextContent {
text
}
...on BannerContent {
banners
}
}
}
}
}
我目前正在我的应用程序中使用 GQL Modules
。
在下面的数据结构中,content
将有 object
或 array
var A = {
content: {
text: "Hello"
}
}
var B = {
content: {
banner: [{
text: "Hello"
}]
}
}
如何让 content
接受动态模式?
下面是我累了,但没有工作。请帮忙
type body {
content: TextContent | [Banner]
}
type Banner {
text: TextContent
}
type TextContent {
text: String
}
GraphQL 要求字段始终解析为单个值或列表——它不能解析为任何一个。字段 可以 但是, return 在运行时使用抽象类型(联合或接口)完全不同的类型。所以你可以像这样重构你的模式:
type Body {
content: Content
}
union Content = TextContent | BannerContent
type TextContent {
text: String
}
type BannerContent {
banners: [Banner]
}
然后您将使用片段查询 content
:
query {
someField {
body {
content: {
...on TextContent {
text
}
...on BannerContent {
banners
}
}
}
}
}