鉴于
interface Interface {
common: String!
}
type A implements Interface {
common: String!
foo: String!
}
type B implements Interface {
common: String!
bar: String!
}
是否可以构造一个查询,默认情况下返回[Interface]
仅返回A
,并过滤掉B
个/空对象?
如果结果集中有A
和B
query {
q {
... on A {
foo
}
}
}
返回A
和一个空对象(因为我们在其他情况下没有要求数据):
{
"data": {
"q": [
{
"foo": "foo"
},
{}
]
}
}
有关完整示例,请参阅https://launchpad.graphql.com/zrz504kp37。
答案 0 :(得分:0)
我有同样的问题,但在我的情况下,我使用GraphQL(PHP)和一个名为 overblog / GraphQLBundle 的symfony包,它提供了一些回调(事件),在我的情况下,我使用了post执行一个:
public function onPostExecutor(ExecutorResultEvent $event)
{
$result = $event->getResult();
// Here I loop over the data array and unset all these empty {} objects.
}
这是供参考的文件: https://github.com/overblog/GraphQLBundle/blob/master/Resources/doc/events/index.md
我猜你可以使用类似JS的东西。