我希望制作一个新的 Pedestal 拦截器,以便在离开阶段运行。我希望修改上下文以将令牌字符串添加到每个 html 页面的底部(用于“站点活动”报告)。
从这里的基座源代码中,我看到了这个函数:
(defn after
"Return an interceptor which calls `f` on context during the leave
stage."
([f] (interceptor {:leave f}))
([f & args]
(let [[n f args] (if (fn? f)
[nil f args]
[f (first args) (rest args)])]
(interceptor {:name (interceptor-name n)
:leave #(apply f % args)}))))
所以我需要为它提供一个函数,然后将其插入拦截器映射中。那讲得通。但是,当“上下文”不在范围内时,如何编写引用上下文的函数?
我想做类似的事情:
...[io.pedestal.interceptor.helpers :as h]...
(defn my-token-interceptor []
(h/after
(fn [ctx]
(assoc ctx :response {...}))))
但是'ctx'不在范围内?谢谢。