为什么我们在 URL 中使用连字符作为目录?

问题描述 投票:0回答:1

我见过它在多个地方使用,最新的包括 GitLab 的 URL 结构和我在公司开发的一些软件。

事情是这样的:

https://some.gitlab.com/group/project/-/tree/main

或对于服务的某些端点

https://some.service/-/healthcheck

我的问题是,它的目的是什么? Afaik 它没有特殊效果,除非底层 HTTP 框架以某种方式使用它?

http url gitlab api-design endpoint
1个回答
0
投票

确切、精确的原因通常是针对特定项目的。然而,字符

-
通常可以用作路由中的通配符或中性占位符。

例如,如果您的路由接受可选帐户标识符,例如:

https://some.service/:account_id/healthcheck

然后您可以使用

-
作为占位符,而无需多个路由定义(有时可能最终会使路由匹配更加复杂)。在这种情况下,您最终可能会得到如下路线:

https://some.service/-/healthcheck
https://some.service/18/healthcheck

第一种情况,没有明确提供账户。也许在某些情况下,资源 ID(在本例中为帐户 ID)可以从上下文中推断出来。

既然您明确提到了 GitLab,并且考虑到他们的代码是开源的,我就通过练习更准确地弄清楚他们使用

-
的原因。我从他们的
routes.rb
文件开始,我在其中找到了对 /-/ 范围的引用。

从那里开始,归咎于代码更改,我最终得到了以下票证:

TL;博士;他们在某些路由前面加上

-
前缀,因为当路由器需要为给定请求确定适当的控制器/操作时,它可以加快应用程序的性能。

每次 Rails 控制器必须匹配端点时,它都必须进行巨大的正则表达式比较。我已经在我们的性能跟踪中的某个地方看到了这一点。

© www.soinside.com 2019 - 2024. All rights reserved.