Ring のドキュメントによると、メッセージではなく、ステータス コードのみを設定できます。
https://github.com/mmcgrana/ring/wiki/Concepts
また、ring.util.servlet/set-status
関数は次を呼び出しますjavax.servlet.http.HttpServletResponse .setStatus(int)
。
(defn set-status
"Update a HttpServletResponse with a status code."
[^HttpServletResponse response, status]
(.setStatus response status))
実装全体はこちら: https://github.com/ring-clojure/ring/blob/master/ring-servlet/src/ring/util/servlet.clj#L64
ステータス メッセージのオプション サポートを追加するために Ring を変更するのはかなり簡単です。
ring.util.servlet/update-servlet-response
関数に変更を導入できると思います。
(defn update-servlet-response
"Update the HttpServletResponse using a response map."
[^HttpServletResponse response, {:keys [status headers body]}]
(when-not response
(throw (Exception. "Null response given.")))
(when status
(set-status response status))
(doto response
(set-headers headers)
(set-body body)))
たとえば、応答マップに status-message キーを追加します。
https://github.com/ring-clojure/ring/blob/master/ring-servlet/src/ring/util/servlet.clj#L105