clojure解析器 - 为什么会处理ok给其他http方法的处理程序而不是get

时间:2014-05-18 14:35:34

标签: clojure liberator

我正试图让我的头围绕着clojure解放器,我在下面遇到过这种类型的代码:

  :handle-ok (by-method {
    :get (fn [ctx] (render-item (:item ctx)))
    :post (fn [ctx] (render-item (:item ctx)))
    :put (fn [ctx] (update-item-response coll-slug ctx))})

起初我认为handle-ok仅仅是为了GET请求,但后来我遇到了这个。

为什么我会在上面的示例中为post和put提供处理程序?这些是请求后处理程序。

1 个答案:

答案 0 :(得分:2)

看一下decision graph,在底部你会看到生成的代码200.将鼠标悬停在它上面会显示这实际上是:handle-ok发挥作用。状态代码200可以是决策图中许多不同路径的结果,包括put和post。