我有时需要查询一个包含多个字段的多个对象的列表,有时只查询一个包含多个字段的对象。作为一个例子,考虑这两个查询:
我不想在第一个查询中要求超出所需的字段,因为这将导致请求包含大量数据(否则我可以使字段相同,例如使用
fragment
,解决我的问题)。
问题是:存储在缓存中的数据是标准化的,并根据
__typename
和
id
. 这意味着如果查询或查询原子相同,它们将相互覆盖。因此,如果第二个查询最后发生,则数据库中的项没有
name
字段,与第一个查询关联的组件所需。
名称
在第二个查询中也是如此。问题是,这看起来很脆弱,而且容易出错;例如,一个人可能创建了第三个查询,却忘记了请求
那里
__类型名
的,即在后端区分它们。但这似乎有点做作;这些查询实际上处理的是同一类对象。
有没有一个规范的方法来处理这个问题?