我在我的graphql查询中尝试 nest 片段(无递归或无限扩展) . 但是,graphql架构不会将我的查询视为有效,或者片段定义似乎是多余的 . 我想要的graphql响应结构是:
`
{
"data":{
"availability":{
"mon":{
"open":"5.00 a.m.",
"close":"10.00 p.m.",
"allday":false,
"closed":false
},
"tue":{
"open":"5.00 a.m.",
"close":"10.00 p.m.",
"allday":false,
"closed":false
},
"wed":{
"open":"5.00 a.m.",
"close":"10.00 p.m.",
"allday":false,
"closed":false
},
"thu":{
"open":"5.00 a.m.",
"close":"10.00 p.m.",
"allday":false,
"closed":false
},
"fri":{
"open":"5.00 a.m.",
"close":"10.00 p.m.",
"allday":false,
"closed":false
},
"sat":{
"open":"5.00 a.m.",
"close":"10.00 p.m.",
"allday":false,
"closed":false
},
"sun":{
"open":"5.00 a.m.",
"close":"10.00 p.m.",
"allday":false,
"closed":false
}
}
}
}
`
可用性的类型为 Availability ,mon,tue等的类型为 Day
方法1:这不是graphql中的有效语法 . graphql抛出错误(不允许以这种方式嵌套)
`
fragment Hours on Day {
open
close
allday
closed
}
fragment DailyAvailability on Availability {
mon
tue
wed
thu
fri
sat
sun
}
query {
availability {
... DailyAvailability {
... Hours
}
}
}
`
方法2:这是有效的,但似乎是多余的,因为我必须分别在每一天传播时间 .
`
fragment Hours on Day {
open
close
allday
closed
}
fragment DailyAvailability on Availability {
mon {... Hours}
tue {... Hours}
wed {... Hours}
thu {... Hours}
fri {... Hours}
sat {... Hours}
sun {... Hours}
}
query {
availability {
... DailyAvailability
}
}
`
请建议我是否有办法在我的第一种方法中嵌套片段 .
1 回答
这看起来像是要使用带有“别名”的字段请求 . 您的架构看起来像:
然后这个查询会给你你要求的内容: