Надеюсь, я могу объяснить это так, чтобы это имело смысл!Поиск совпадающего пути в веб-сервисе Clojure
Я использую Освободителя прототип некоторые веб-сервисы, которые мне нужно подвергать клиентов и иметь маршрут (ы), определенные как так:
(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, который соответствовал ему.
Я почти уверен, что ответ находится в Clout где-то, но я не могу его найти! :(
Любые советы
Cheers,
Питер
ответить на ваш второй пункт; да, это должен был быть вызов 'handler', а не самого обработчика - спасибо. – peter