我希望我能以一种有意义的方式解释这一点!
我正在使用 Liberator 对一些需要向客户端公开的 Web 服务进行原型设计,并具有如下定义的路由:
(defroutes fish
(context "/fish"
[]
(ANY "/cod/:id/count"
[id]
(cod-fish id))))
(def handler
(-> fish
wrap-params
path-wrapper))
的目的path-wrapper
是输出一些关于匹配路径的信息。它目前看起来像这样:
(defn path-wrapper
[handler]
(fn [request]
(println "in" (:request-method request) (:uri request))
(let [response (handler request)]
(println "out")
response)))
这会打印出您所期望的:
in :get /fish/cod/123/count
out
但是,我希望它打印出来的是:
in :get /fish/cod/:id/count
out
也就是说,匹配的路径而不是匹配它的 URI。
我几乎可以肯定答案在某个地方,但我似乎无法找到它!:(
有什么建议吗?
干杯,
彼得