Clojure 黑色的鼻涕虫允许使用哪些字符?

Clojure 黑色的鼻涕虫允许使用哪些字符?,clojure,noir,clout,Clojure,Noir,Clout,我有一个Clojure服务,我正在通过REST公开它。我的页面定义为: (defpage "/package_versions/:id" {:keys [id]} (do (println "ID: " id) (if-let [pv (pv/fetch-one (db/keyspace) id)] (response/json pv) (response/status 404 nil)))) id允许使用哪些字符?鼻涕虫1-2-3,1 | 2 |

我有一个Clojure服务,我正在通过REST公开它。我的页面定义为:

(defpage "/package_versions/:id" {:keys [id]}
  (do
    (println "ID: " id)
    (if-let [pv (pv/fetch-one (db/keyspace) id)]
      (response/json pv)
      (response/status 404 nil))))
id允许使用哪些字符?鼻涕虫1-2-3,1 | 2 | 3,1 | 2 | 3都能工作,但1.2.3不能。有没有一种方法可以制造出含有酒精的鼻涕虫。工作黑色路线中允许的字符是什么?哪个代码对这种行为负责:noir、ring、compojure?

它应该对此负责,这是compojure使用的库。您可以查看一个设置不同匹配器的示例,特别是使用
路由编译

它应该对此负责,这是Compojure使用的库。您可以查看一个设置不同匹配器的示例,特别是使用
路由编译

查看

测试中使用的slug实际上没有特殊字符,因此我不知道哪些字符是合法的,但在文件的末尾有一个示例,说明如何定义自定义路由匹配器,如果您愿意,可以使用该匹配器来匹配点

我希望您可以使用
Noir.core/compojure路由
Noir.core/custom处理程序
将自定义路由匹配器插入到Noir中

此外,还有一些测试中带有文字点,例如,
“/foo.:ext
,它匹配像
/foo.txt
这样的URL,因此如果不允许在slug中使用点是一个特性,而不是一个bug,我也不会感到惊讶。

请看下面的例子

测试中使用的slug实际上没有特殊字符,因此我不知道哪些字符是合法的,但在文件的末尾有一个示例,说明如何定义自定义路由匹配器,如果您愿意,可以使用该匹配器来匹配点

我希望您可以使用
Noir.core/compojure路由
Noir.core/custom处理程序
将自定义路由匹配器插入到Noir中


此外,还有一些测试中带有文字点,例如,
“/foo:ext
,它匹配像
/foo.txt
这样的URL,所以如果不允许在slug中使用点是一个特性,而不是一个bug,我不会感到惊讶。

那么你的权利,我还向clj小组提出了这个问题,他们让我参考了这个指南:因此,该文档的相关部分是:
:id部分将匹配到下一个“/”或“.”的任何子路径。它还指出,您可以为子路径内联匹配指定自定义正则表达式,例如,在使用Noir时,可以使用
(defpage[“/user/:id”,:id#“[0-9]+”…)
,我还向clj小组提出了这个问题,他们让我参考了这个指南:因此,该文档的相关部分是:
:id部分将匹配到下一个“/”或“.”的任何子路径。它还指出,您可以为子路径内联匹配指定自定义正则表达式,例如,在使用Noir时,
(defpage[“/user/:id”,:id#“[0-9]+”…)