RESTful路由分组算法

| 给定一个已知为“ RESTful”的URL列表,将它们分组以使映射到同一“控制器/动作/视图”的URL可能被分组在一起的合适算法是什么? 例如,给出以下列表:
http://www.example.com/foo
http://www.example.com/foo/1
http://www.example.com/foo/2
http://www.example.com/foo/3
http://www.example.com/foo/1/edit
http://www.example.com/foo/2/edit
http://www.example.com/foo/3/edit
会将它们分组如下:
http://www.example.com/foo

http://www.example.com/foo/1
http://www.example.com/foo/2
http://www.example.com/foo/3

http://www.example.com/foo/1/edit
http://www.example.com/foo/2/edit
http://www.example.com/foo/3/edit
URL的顺序或结构尚不清楚。在我的示例中,这很容易,因为ID显然是数字。理想情况下,我希望即使ID是非数字(如
http://www.example.com/products/rocket
http://www.example.com/products/ufo
),算法也能很好地完成工作。 这实际上只是在说一句,“鉴于这些URL,我通过删除我认为是URL的“变量” ID部分的内容对它们进行了分组。”     
已邀请:
        Aliza有一个正确的主意,您想查找“关节点”(在REST中,基本上是传递参数的地方)。仅寻找单点变更变得棘手 例
http://www.example.com/foo/1/new
http://www.example.com/foo/1/edit
http://www.example.com/foo/2/edit
http://www.example.com/bar/1/new
由于我们不了解URL语义,因此可以将这些方法分为几种同样好的方法。这实际上可以归结为这个问题-这是REST描述符的URL部分还是参数。如果我们知道所有的描述符是什么,剩下的就是参数,我们就完成了。 给出足够大的数据集,我们希望查看每个深度的所有URL的统计信息。例如/ x / y / z / t /。我们将计算每个时隙中的出现次数,并生成一个大的联合概率分布表。 现在我们可以看看符号的分布。插槽中的高计数意味着它很可能是一个参数。我们将从底部开始,寻找条件概率事件,即x是foo的概率是多少,然后x是给定x的概率y是什么,依此类推。等等。我必须更多地考虑以确定系统地提取它们的方法,但这似乎是一个开始     
        将每个url分割为字符串数组,定界符为\'/ \' 例如
http://www.example.com/foo/1/edit
将得到数组
[http:,www.example.com,foo,1,edit]
如果两个数组(URL)在除一个之外的所有指标中共享相同的值,则它们将在同一组中。 例如
http://www.example.com/foo/1/edit
=
[http:,www.example.com,foo,1,edit]
http://www.example.com/foo/2/edit
=
[http:,www.example.com,foo,2,edit]
。数组在所有索引中匹配,但#3除外,#3在第一个数组中为1,在第二个数组中为2。因此,URL属于同一组。 很容易看出,根据此算法,像
http://www.example.com/foo/3
http://www.example.com/foo/1/edit
这样的网址将不属于同一组。     

要回复问题请先登录注册