我有一个通过REST公开的Clojure服务。我有一个页面定义为:
(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路由中允许的字符是什么?哪个代码负责这种行为: noir,ring,compojure?
发布于 2012-02-29 06:00:27
看一看Clout test cases。
测试中使用的slug没有真正的特殊字符,所以我不知道哪些字符是合法的,但在文件的末尾有一个如何定义自定义路由匹配器的示例,如果您愿意的话,该匹配器可能可以用于匹配点。
我希望您可以使用noir.core/compojure-route或noir.core/custom-handler将自定义路由匹配器插入到Noir中。
此外,还有一些带有文字点的测试,例如与/foo.txt这样的URL匹配的"/foo.:ext,所以如果它是一个特性,而不是一个错误,不允许在段代码中使用点,我也不会感到惊讶。
https://stackoverflow.com/questions/9485505
复制相似问题