graphql - 深度合并片段
问题描述
我正在使用 GraphQL API(我不拥有)来访问数据。我广泛使用片段,我不止一次遇到的一个问题是片段似乎没有深度合并。考虑以下查询:
fragment BasicInfo on Person {
id
name
address {
city
country
}
}
query ProfileCard($id: ID) {
personById(id: $id) {
...BasicInfo
id
age
address {
streetName
streetNumber
}
}
}
在这里,我们运行一个基本查询以从个人资料卡中获取一些信息,包括该人的年龄和他们的一些地址(街道名称和号码)。配置文件卡使用的另一个组件也需要一些可以在BasicInfo
片段中找到的信息。这包括他们的名字以及他们的城市和国家。
运行此查询将返回一个包含以下字段的对象:id
、name
、age
和。address.streetName
address.streetNumber
address.city
并且address.country
都丢失了 - 查询似乎没有将片段深度合并,只是在浅层插入它。
是否可以强制我的片段深度合并? 这甚至是预期的行为吗?我是否必须与 API 所有者联系才能更正此问题?
我很难找到说明它应该是一种方式或另一种方式的文档。
解决方案
尝试改用别名。就像是
fragment BasicInfo on Person {
id
name
cityCountryAddress: address {
city
country
}
}
推荐阅读
- python - 一起使用 Mapfield 和 DynamicEmbeddedDocument 时出现 InvalidDocumentError
- javascript - 消息的含义是什么:string[] = []; 在角度类?
- python - 如何强制子类具有 __slots__?
- scala - spark.read 不是包 org.apache.spark 的成员
- qliksense - 在css中设置标题图片
- python - 如何修复代码以根据 X1 和 X2 预测 Y
- python - 一个数组的元素如何分配另一个数组?
- r - 在r编程中,如何在整个文档中生成具有通用页眉和脚注的rtf文档
- python - Python; 通过正则表达式从字符串中解析带有点的版本号
- java - 这两种冒泡排序算法有什么区别?