Falcor 路由器是不是实施路由排名?
Posted
技术标签:
【中文标题】Falcor 路由器是不是实施路由排名?【英文标题】: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 路由器如何确定使用哪个路由。我担心的是,当访问多个键而不是单个键时,您可能会有更有效的数据访问策略。
【问题讨论】:
【参考方案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
处理程序匹配)。
【讨论】:
以上是关于Falcor 路由器是不是实施路由排名?的主要内容,如果未能解决你的问题,请参考以下文章