Jak wykonać HTTP 302 przekierowania za pomocą szkieletu sieci Noir
Pomagam założyć stronę internetową z frameworkiem Noir Clojure, choć mam dużo więcej doświadczenia z Django / Pythonem. W Django jestem przyzwyczajony do adresów URL, takich jak
http://site/some/url
302-przekierowany automagicznie do
http://site/some/url/
Noir jest bardziej wybredny i tego nie robi.
Jaki byłby właściwy sposób, aby to zrobić automatycznie? Ponieważ dobre adresy URL są ważnym sposobem adresowania witryny, a wielu użytkowników zapomni końcowego ukośnika, jest to podstawowa funkcja, którą chciałbym dodać do mojej witryny.
EDIT: Oto, co w końcu dla mnie zadziałało, na podstawie sugestii @ IvanKoblika:
(defn wrap-slash [handler]
(fn [{:keys [uri] :as req}]
(if (and (.endsWith uri "/") (not= uri "/"))
(handler (assoc req :uri (.substring uri
0 (dec (count uri)))))
(handler req))))