graphql - 如果参数为空,GraphQL 查询默认返回全部
问题描述
我有一个简单的问题,我目前正在使用 GraphQL/Hasura 订阅一些数据,此订阅将 id 作为参数,但在 id 为空的情况下,我的订阅默认返回所有数据...
这是订阅:
subscription MySubscription($id: Int) {
dcim_device(where: { virtual_chassis_id: { _eq: $id } }) {
id
name
serial
site_id
status
ip_address {
address
}
dcim_platform {
name
}
device_tags {
tag_id
extras_tag {
id
name
color
}
}
dcim_devicerole {
color
name
}
virtual_chassis_id
dcim_virtualchassis {
id
}
dcim_interfaces {
enabled
name
id
type
}
}
}
这是 Vue.js 前端部分,我在其中使用 Apollo 调用我的订阅:
apollo: {
$subscribe: {
dcim_device: {
query: require("../../graphql/subscribeToNewDevicesByVCid.gql"),
variables() {
return {
id: this.node.dcim_virtualchassis.id,
};
},
result({ data }) {
this.devices = data.dcim_device;
console.log(this.devices);
},
},
},
},
如您所见,“节点”可以根据用户点击而改变,在我的情况下,有些节点的 virtual_chassis_id 为空......
我想知道是否有可能捕获或类似的情况,即没有为查询提供参数以显示其他内容。
提前致谢 !
解决方案
推荐阅读
- vue.js - 比 el-tabs 性能更好的多标签页
- node.js - 在 node-postgres 中安排到期时间
- macos - 在 Mac OS El Capitan 上安装和配置 Jenkins
- python - ValueError:基于位置的索引只能具有 [整数、整数切片、整数列表、布尔数组] 类型
- python - Python没有在游戏中注册击键
- r - R帮助将两个数据帧的子集加1并除以int值
- css - 当内容发生变化时,为 div 的扩展添加平滑过渡(React)
- javascript - 问题导航背景颜色不变
- r - BOX.TEST 的 Rmarkdown 输出以错误的方式打印
- node.js - 尝试刷新 googleapis 的访问令牌时出现 invalid_grant 错误