如何从 clojure 解放者的 post 子句中 return 401 代码?

How to return 401 code from post clause in clojure liberator?

我有这样一段代码:

(defresource errors []
         :authorized? (fn [ctx] (authorized? ctx))
         :allowed-methods [:post :options]
         :available-media-types media-types
         :post!      (fn [ctx] (-> ctx
                                   parse-json
                                   errors/insert-error)))

授权?函数检查用户令牌,但我还有一些其他规则,我想在 post 中检查!功能。怎么做?我可以从 post 中抛出异常!功能,但我想 return 401 状态代码。

从你的问题中不清楚你想在 :post! 函数中检查什么,但在正常情况下,:post! 函数中的失败不会 return 401 错误。

如果你想 return 一个 401 那么你可能应该在 :authorized? 函数中检查请求,然后 return 判断真假。

如果您能详细说明要检查的规则,那么我的回答可能会更具体。

您可能已经这样做了,但请确保您了解 Liberator decision graph 以及您的请求如何通过它。