【问题标题】:Does Falcor Router implement route ranking?Falcor 路由器是否实施路由排名?
【发布时间】:2015-12-08 06:42:23
【问题描述】:

在研究 Faclor 路由器时,我非常喜欢 KeySets 的特性,它允许路由以任意组合匹配一组实体键,但这让我对路由排名感到疑惑。

如果我有路线:"titlesById[{integers:titleIds}]['name','year']"

还有一条路线:"titlesById[{integers:titleIds}]['name']"

当我只请求name 键时,Falcor 路由器如何确定使用哪个路由。我担心的是,当访问多个键而不是单个键时,您可能会有更有效的数据访问策略。

【问题讨论】:

    标签: falcor falcor-router


    【解决方案1】:

    是和否。

    实现路由优先,含义如下:

    特定键:4 整数/范围:2 键:1

    所以['name', 'year']['name'] 在优先级上是等价的。

    但是你的规范有问题。路由器不允许 same 优先路由匹配相同的路径。因此,以下路径优先等效,因此会在Router构造时抛出错误。

    { route: 'titlesById[{integers:titleId}].name', get: ... },
    { route: 'titlesById[{ranges:titleId}].name', get: ... }, 
    ...
    

    这将引发错误,因为范围和整数都匹配同一组传入数据(数字)并且它们都匹配相同的路由(titlesById、numbers、name)。这延伸到您的示例,您有两条路线匹配相同的路径,这不会发生(当然,除非一条路线与 get 处理程序匹配,而另一条路线与 set 处理程序匹配)。

    【讨论】:

      猜你喜欢
      • 2015-12-12
      • 2016-07-25
      • 2021-10-24
      • 2016-02-12
      • 2016-05-17
      • 2015-01-19
      • 2015-11-13
      • 2021-02-26
      • 2015-12-31
      相关资源
      最近更新 更多