ペデスタルでのキャッチャーインターセプターの最初の試みは次のとおりです。
(definterceptorfn catcher []
(interceptor
:error (fn [context error]
{:status 500
:body (->> error .toString (hash-map :error) json/write-str)
:headers {"Content-type" "application/json"}})))
コードに(/ 1 0)を追加することでテストできるように、関数は呼び出されますが、クライアントはマップ内の応答ではなく、ステータス 200 の空の応答を取得します。なぜそうなのか不思議です。
私のルート変数には何も空想はありません:
(defroutes routes
[[["/api"
^:interceptors [(body-params/body-params) (catcher) bootstrap/html-body]
...