如何在Clojure Liberator中以json格式返回401错误?

时间:2016-06-02 18:49:50

标签: clojure functional-programming clojurescript compojure liberator

我使用liberator进行REST服务,我的内容类型是json。

:authorized?(或其他决定)失败时,会返回我不想要的text/html

我需要解放器来为所有类型的错误返回json数据格式。

1 个答案:

答案 0 :(得分:2)

specificity可用于自定义在不同情况下要执行的操作,例如句柄ok,找不到资源或未对用户进行身份验证。例如:

(resource
  :available-media-types ["application/json"]
  :authorized? (fn [ctx] ...)
  :handle-unauthorized {:message "You need to be authenticated"}
  :exists? (fn [ctx] ...)
  :handle-not-found {:message "Resource not found"})

与其他情况一样,handler可以是常量值,也可以是生成它的函数。