具有客户端缓存的数组数组的对象

时间:2018-11-12 18:17:18

标签: graphql react-apollo aws-appsync

我有一个架构,为了便于描述,

type level0 {
    ID id
    String name
    [level1] level1s
}
type level1 {
    ID id
    String name
    [level2] level2s
}
type level2 {
    ID id
    String name
}

type Query {
    getLevel0(ID: id)
}

当我最初获取数据时,我会这样查询自己的查询

query GetLevel0($id: ID) {
    getLevel0(id: $id) {
        id
        name
        level1s {
            id
            name
            level2s {
                id
                name
            }
        }
    }
}

因此,在这一点上,我现在获得了数据的完全嵌套的对象层次结构,以便可以急切加载快速管理数据所需的一切。

所以现在我的问题是,当我要自上而下地管理我的level2s集合时,此对象层次结构就可以正常流动,而无需创建用于直接访问其他信息的其他查询。我还使用了要保持更新的客户端InMemoryCache,而无需进行额外的网络调用来再次返回完整数据。

有没有一种方法可以构建模式以支持对子集合的过滤?

例如

query GetLevel0($id: ID, $level1id: ID) {
    getLevel0(id: $id) {
        id
        name
        level1s(id: $level1id) {
            id
            name
            level2s {
                id
                name
            }
        }
    }
}

当我执行cache.readQuery从子集合中添加新条目或删除条目时,想知道是否可以从缓存结果中执行筛选。

任何其他有关此的知识都很好。

谢谢!

0 个答案:

没有答案