Return 来自 falcor 路由器的数据和参考

Return data & reference from falcor router

我有一条路线return关于用户帐户功能的详细信息:

// games[{keys:games}].features[{integers:indices}]
{
    $type : "atom",
    value : {
        id: "6",
        count: "1",
        ...
    }
}

还有一条路线return关于特定功能的一般详细信息:

// features[{integers:features}]
{
    $type : "atom",
    value : {
        name : "fooga",
        max : 10,
        ...
    }
}

我不想将通用特征数据合并到用户特定数据中,因为那将是一堆数据重复,但我也希望能够在一个请求中获得所有数据

构建我的 routes/returned 数据以便 games[{keys:games}].features[{integers:indices}] 可以 return 对 features[{integers:features}] 有用的参考的聪明方法是什么?

我试过这样拆分它们:

// games[{keys:games}].features[{integers:indices}].details
{
    $type : "atom",
    value : {
        id: "6",
        count: "1",
        ...
    }
}

// games[{keys:games}].features[{integers:indices}].meta
{
    $type : "ref",
    value : [
        "features",
        "15"
    ]
}

但我想不出解决 .meta 引用 w/o 编写看似冗余的路径的方法,例如 ...features.0.meta.[name,max,...]。理想情况下,ref 只是 return 一个原子,因为它是少量数据。

我最后的结构是这样的:

games[{keys:games}].features[{integers:indices}].details
games[{keys:games}].features[{integers:indices}].feature
features[{keys:games}][{integers:features}].details

丑陋的路径,但是¯\_(ツ)_/¯