我有以下查询:
{
entity(id: "theId") {
source1: media(source: 1){
images{
src, alt
}
}
source2: media(source: 2){
images{
src, alt
}
}
}
}
那给我的结果是:
{
"entity": [
{
"source1": {
"images": [{"src": "", "alt": ""}]
},
"source2": {
"images": [{"src": "", "alt": ""}]
}
}
]
}
是否有一种方法可以产生source1
和source2
的单个结果,执行source1
,如果没有结果,则使用source2
作为后备?
答案 0 :(得分:0)
您要查询两个字段(source1,source2),因此必须为它们两个都返回某些内容(null是一个可能的选项)。如果要按顺序检查它们,则可能应该将查询分为两部分,然后在客户端一次运行它们。
您是否可以更改,以便仅查询单个source
字段,并让解析器(在服务器上)根据可用资源返回有意义的内容,可以这么说?像这样:
{
entity(id: "theId") {
source: media(sourcesList: [1, 2]){
images{
src, alt
}
}
}
}
其中sourceList
是要尝试使用的源。因此,解析程序(服务器)可以检查源1是否可用,如果没有返回源2。
您还可以添加一个字段,使客户知道从提议的列表中实际返回了哪个源(如果返回了源1,则下面的sourceNumberReturned
将返回1
,否则返回2
)
{
entity(id: "theId") {
source: media(sourcesList: [1, 2]){
images{
src, alt
}
sourceNumberReturned
}
}
}